标签:方式 六种 List ArrayList list add 集合 new
先了解下什么是有序/无序
无序:数据的排列顺序与我们预期的不一致
有序:数据的排列顺序符合我们的预期
什么是有序/无序集合
有序集合:插入和读取数据的顺序一致
无需集合:插入和读取数据的顺序不一致
去重
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。