【发布时间】:2014-09-19 20:03:02
【问题描述】:
请在投票之前 - 阅读问题并检查示例 - 这不是重复的!
我想从 Java 中的 ArrayList 中删除 每个 重复的元素,如下所示:
Original list: [4, 2, 2, 3, 4, 1]
Set result: [1, 2, 3, 4]
Desired result: [1, 3]
重复的明显解决方案 - 设置在这里不起作用。
我的解决方案:
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(5);
arrayList.add(1);
arrayList.add(5);
arrayList.add(1);
arrayList.add(5);
arrayList.add(2);
arrayList.add(3);
ArrayList<Integer> temp = new ArrayList<>(arrayList);
for(Integer number : new HashSet<Integer>(arrayList)){
temp.remove(number);
}
arrayList.removeAll(temp);
任何更聪明/更聪明的解决方案?
【问题讨论】:
-
提供的副本不正确,但您仍然没有表现出任何努力。
-
复制什么?无论如何,您面临的问题和问题是什么?我可以看到您想要实现的目标,但我看不到您解释阻止您实现目标的部分。
-
我在 2 分钟前问过这个问题,并且因为重复的问题得到了 6 次反对票,但显然不是。
-
@mickey 您的链接不正确。选中“期望结果”,而不是“设置结果”。
-
既然您已经有了一个可行的解决方案并且您有兴趣改进它(我认为它没有错误),您应该在codereview.stackexchange.com 上发布您的问题。一般规则是 (1) 如果您的代码有效,但如果您试图让您的代码在 Stack Overflow 上工作,您很想知道它如何在 Code Review 上更好地工作 (2)。无论如何,既然您已经在 Stack Overflow 上发布了您的问题,此建议是针对您未来的问题(您应该只在 StackExchange 网站之一上发布问题,因此选择 SO 或 CR,切勿在两个网站上发布相同的问题)。
标签: java arraylist duplicates duplicate-removal