可以使用兩種方法來找出集合中重復(fù)的元素。
方法一:使用嵌套循環(huán)遍歷集合,比較每個元素是否與其他元素重復(fù)。
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(2);
list.add(4);
list.add(1);
Set<Integer> duplicates = new HashSet<>();
for (int i = 0; i < list.size() - 1; i++) {
for (int j = i + 1; j < list.size(); j++) {
if (list.get(i).equals(list.get(j))) {
duplicates.add(list.get(i));
}
}
}
System.out.println("重復(fù)的元素:" + duplicates);
}
}
輸出結(jié)果為:
重復(fù)的元素:[1, 2]
方法二:使用HashMap統(tǒng)計每個元素的出現(xiàn)次數(shù),然后找出出現(xiàn)次數(shù)大于1的元素。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(2);
list.add(4);
list.add(1);
Map<Integer, Integer> countMap = new HashMap<>();
for (Integer element : list) {
countMap.put(element, countMap.getOrDefault(element, 0) + 1);
}
List<Integer> duplicates = new ArrayList<>();
for (Map.Entry<Integer, Integer> entry : countMap.entrySet()) {
if (entry.getValue() > 1) {
duplicates.add(entry.getKey());
}
}
System.out.println("重復(fù)的元素:" + duplicates);
}
}
輸出結(jié)果為:
重復(fù)的元素:[1, 2]