失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Java中List集合去除重复数据的六种方法

Java中List集合去除重复数据的六种方法

时间:2022-01-18 12:55:39

相关推荐

Java中List集合去除重复数据的六种方法

方法1

循环list中的所有元素然后删除重复

public static List removeDuplicate(List list) {for ( int i = 0 ; i < list.size() - 1 ; i ++ ) {for ( int j = list.size() - 1 ; j > i; j -- ) {if (list.get(j).equals(list.get(i))) {list.remove(j); } } } return list; }

方法2

通过HashSet踢除重复元素

public static List removeDuplicate(List list) {HashSet h = new HashSet(list); list.clear(); list.addAll(h); return list; }

方法3

删除ArrayList中重复元素,保持顺序

// 删除ArrayList中重复元素,保持顺序public static void removeDuplicateWithOrder(List list) {Set set = new HashSet(); List newList = new ArrayList(); for (Iterator iter = list.iterator(); iter.hasNext();) {Object element = iter.next(); if (set.add(element)) newList.add(element); }list.clear(); list.addAll(newList); System.out.println( " remove duplicate " + list); }

方法4

把list里的对象遍历一遍,用list.contains(),如果不存在就放入到另外一个list集合中

public static List removeDuplicate(List list){List listTemp = new ArrayList(); for(int i=0;i<list.size();i++){if(!listTemp.contains(list.get(i))){listTemp.add(list.get(i)); } } return listTemp; }

方法5

retainAll和retainAll用法

List<String> a = Arrays.asList ("a", "f", "e", "x", "w");List<String> b = Arrays.asList ("a", "b", "c", "d");List<String> c = null;List<String> d = null;c = new ArrayList(a);c.retainAll(b); // 得到 a, b 的交集。d = new ArrayList(a);d.addAll(b); // 合并 a, b 值到 d 中。d.removeAll(c);// 去掉交集 c 中的所有条目。留下只出现在a 或 b 中的条目。System.out.println(d);

方法6

用JDK1.8 Stream中对List进行去重:list.stream().distinct();

List<String> a = new ArrayList<> ();a.add("a");a.add("b");a.add("b");List<String> b = new ArrayList<> ();b.add("a");b.add("c");b.add("b");a.addAll(b);List list=(List) a.stream().distinct().collect(Collectors.toList());System.out.println(list);

方式7

方式8

List uniqueList = employeeList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(paringLong(Employee::getId))),ArrayList::new));

方式8

HashSet idSet = new HashSet<>();employeeList.removeIf(employee -> !idSet.add(employee.getId()));

如果觉得《Java中List集合去除重复数据的六种方法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。