阅读量:2
要获取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
是要比较的对象类型,可以根据实际需求进行替换。