去重的六种方式
作者:互联网
先了解下什么是有序/无序
无序:数据的排列顺序与我们预期的不一致
有序:数据的排列顺序符合我们的预期
什么是有序/无序集合
有序集合:插入和读取数据的顺序一致
无需集合:插入和读取数据的顺序不一致
去重
1.利用集合中的contains去重(有序)
//待去重集合
List<Integer> list=new ArrayList<Integer>();
list.add(3);
list.add(5);
list.add(7);
list.add(1);
list.add(9);
list.add(3);
list.add(2);
//contains去重
List<Integer> newList=new ArrayList<Integer>;
list.forEach(i->{
if(!newList.contains(i)){//i代表list中的元素
newList.add(i)//如果newList中不存在元素i,呢么就添加
}
}
System.out.println(newList)
2.迭代器去重(无序)
//待去重集合
List<Integer> list=new ArrayList<Integer>();
list.add(3);
list.add(5);
list.add(7);
list.add(1);
list.add(9);
list.add(3);
list.add(2);
//迭代器去重
Iterator<Integer> iterator = list.iterator();//创建迭代器对象
while(iterator.hashNext()){//查询是否有下一个元素
integer item=iterator.next();//如果有则获取该元素
if(list.indexOf(item)!=list.lastIndexOf(item)){
iterator.remove();//迭代器中的删除是删除最后返回的元素
}
}
3.hashSet去重(无序,但是会对结果集进行排序)
//待去重集合
List<Integer> list=new ArrayList<Integer>();
list.add(3);
list.add(5);
list.add(7);
list.add(1);
list.add(9);
list.add(3);
list.add(2);
//hashSet去重
Set<Integer> s=new HashSet<Integer>(list);//创建带参数的hashSet对象
System.out.println(s);
4.TreeSet(无序)
//待去重集合
List<Integer> list=new ArrayList<Integer>();
list.add(3);
list.add(5);
list.add(7);
list.add(1);
list.add(9);
list.add(3);
list.add(2);
//treeSet去重
Set s=new TreeSet(list);
System.out.println(s);
5.linkedHashSet(有序)
//待去重集合
List<Integer> list=new ArrayList<Integer>();
list.add(3);
list.add(5);
list.add(7);
list.add(1);
list.add(9);
list.add(3);
list.add(2);
//LinkedHashSet去重
Set<Integer> s=new LinkedHashSet<Integer>(list);
System.out.println(s);
6.Stream去重(有序)
//待去重集合
List<Integer> list=new ArrayList<Integer>();
list.add(3);
list.add(5);
list.add(7);
list.add(1);
list.add(9);
list.add(3);
list.add(2);
//Stream去重
List<Integer>stream=list.stream().distinct().collect(Collectors.toList());
System.out.println(stream)
标签:方式,六种,List,ArrayList,list,add,集合,new 来源: https://blog.csdn.net/q2422442709/article/details/122781015