我需要在我的 ArrayList
中获取所有重复项。我不需要删除重复项,我需要将它们添加到另一个 ArrayList
。下面是一个例子:
ArrayList<String> var = new ArrayList<>();
var.add("a");
var.add("b");
var.add("b");
var.add("c");
因此,如您所见,有 2 个重复元素(b 和 b)。我需要将它们添加到另一个 ArrayList。在这种情况下生成的
ArrayList
应该是 [b,b]
。我怎样才能做到这一点?
最佳答案
您可以使用 HashMap
来存储每次迭代时 String
的出现次数。
然后,对于出现多次的元素,将它们的 n
次添加到新的 List
中:
List<String> var = new ArrayList<>();
var.add("a");
var.add("b");
var.add("b");
var.add("c");
Map<String, Integer> map = new HashMap<>();
for(String str : var) {
if(map.containsKey(str))
map.put(str, map.get(str)+1);
else
map.put(str, 1);
}
List<String> duplicates = new ArrayList<>();
for (String str : var) {
int count = map.get(str);
if(count > 1) {
duplicates.add(str);
}
}
System.out.println(duplicates);
输出:[b,b]
关于java - 如何仅捕获 ArrayList 中的重复元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65470475/