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