要獲取List中重復的對象,可以使用以下方法:
使用循環遍歷List,逐個比較對象是否重復,并將重復的對象添加到另一個List中。
List<T> list = ...; // 原始List
List<T> duplicates = new ArrayList<>(); // 存放重復對象的List
for (int i = 0; i < list.size(); i++) {
T current = list.get(i);
for (int j = i + 1; j < list.size(); j++) {
T compare = list.get(j);
if (current.equals(compare)) {
if (!duplicates.contains(current)) {
duplicates.add(current);
}
break;
}
}
}
使用Java 8的Stream API,結合Collectors.groupingBy
方法進行分組,然后過濾出重復的對象。
List<T> list = ...; // 原始List
List<T> duplicates = list.stream()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
.entrySet()
.stream()
.filter(entry -> entry.getValue() > 1)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
以上方法中,T
是要比較的對象類型,可以根據實際需求進行替換。