List去重的几种方法
短信预约 -IT技能 免费直播动态提醒
list去重
现在设有Integer类型的ArrayList,list=[0,1,1,3,3,4,5]
1.使用contains
//使用contains List<Integer> list1 = new ArrayList<>(list.size()); list.forEach(i -> { if (!list1.contains(i)){ list1.add(i); } });
2.使用TreeSet/HashSet/LinkedHashSet
//使用hashSet去重 HashSet<Integer> set = new HashSet<>(list); ArrayList<Integer> list2 = new ArrayList<>(set);//hashSet会将元素进行排序,LinkedHashSet不会排序,只会去重//TreeSet与HashSet作用类似
3.Stream流
//使用Stream流 list = list.stream().distinct().collect(Collectors.toList());
4.使用迭代器Iterator
//使用迭代器Iterator Iterator<Integer> iterator = list.iterator(); while (iterator.hasNext()){ //获取到集合中存储的元素 Integer next = iterator.next(); //indexOf()会返回元素第一次出现的位置,lastIndexOf()会返回元素最后出现的位置 //如果两个方法的返回值不一样,就说明该元素重复了。 if (list.indexOf(next) != list.lastIndexOf(next)){ iterator.remove(); } }
5.list中的remove方法
//使用list中的remove()方法(不推荐) for (int i = 0; i < list.size(); i++) { for (int j = list.size()-1; j > i; j--){ if (list.get(i).equals(list.get(j))){ list.remove(j); } } }
来源地址:https://blog.csdn.net/qq_43956404/article/details/129272172
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341