【Java】去除List中的重复值并按照从小到大排列
来源:互联网 发布:2016印度宏观经济数据 编辑:程序博客网 时间:2024/06/06 17:39
一、前言
前几天,给一个同事写接口,他的要求是,给我传来一个List<String> ids
,这个里面可能有重复的id,需要帮她去重。我想这个用循环是比较麻烦的,有什么简单的吗?然后就找到了下面的几个方法,总结一下。
二、去重思路
两个思路:
1.遍历List集合判断是否在另一个集合中存在,赋值给另一个集合
2.赋值给Set结合,再返回list集合
【知识补充】可能有一些朋友对Set不熟悉,不了解Set是什么?
Set是Collection容器的一个子接口,它不允许出现重复元素,当然也只允许有一个null对象。在这里大家了解,它里面不能放重复的信息就行了。
三、去重方法demo
- 方法一: 赋值给另一个list2,判断list2是否含有要添加的值(最笨)
这里判断使用的是,list2.contains(字段)
。
@Test public void testMap(){ List<String> list = new ArrayList<String>(); list.add("6"); list.add("2"); list.add("3"); list.add("1"); list.add("7"); list.add("5"); list.add("2"); list.add("3"); List<String> newList = new ArrayList<String>(); for (String cd:list) { if(!newList.contains(cd)){ newList.add(cd); } } System.out.println( "去重后的集合: " + newList); }
结果:可以看出,使用这种方法,可以达到去重的效果,但是集合中是数据依旧是乱的,没有排序。
去重后的集合: [6, 2, 3, 1, 7, 5]
- 方法二、使用
set.add(字段)
来判断能否添加到set中,如果可以添加,也向新的list.add()
中添加一份,不打乱顺序。
@Test public void testMap(){ List<String> list = new ArrayList<String>(); list.add("6"); list.add("2"); list.add("3"); list.add("1"); list.add("7"); list.add("5"); list.add("2"); list.add("3"); Set set = new HashSet(); List newList = new ArrayList(); for (String cd:list) { if(set.add(cd)){ newList.add(cd); } } System.out.println( "去重后的集合: " + newList); }
结果:同样是达到去重,但是没有排序。
去重后的集合: [6, 2, 3, 1, 7, 5]
- 方法三、使用Set去重
@Test public void testMap(){ List<String> list = new ArrayList<String>(); list.add("6"); list.add("2"); list.add("3"); list.add("1"); list.add("7"); list.add("5"); list.add("2"); list.add("3"); //set 去重 Set set = new HashSet(); List newList = new ArrayList(); set.addAll(list); newList.addAll(set); System.out.println( "去重后的集合: " + newList); }
结果:网上有朋友说使用HashSet存储是无顺序的,但是小编亲测,是有顺序的。有待考证
去重后的集合: [1, 2, 3, 5, 6, 7]
网上还有一个朋友说,使用treeSett,可以去重且按照自然顺序排列
@Test public void testMap(){ List<String> list = new ArrayList<String>(); list.add("6"); list.add("2"); list.add("3"); list.add("1"); list.add("7"); list.add("5"); list.add("2"); list.add("3"); //去重并且按照自然顺序排列 List newList = new ArrayList(new TreeSet(list)); System.out.println( "去重后的集合: " + newList);}
四、小结
没有百不到的,没有G不到的!
只要自己有想法,百度和谷歌都会有相似的方案,这个就是现在互联网的特点,小编总结的这些东西也是从网上找到的。加油!
阅读全文
2 0
- 【Java】去除List中的重复值并按照从小到大排列
- Java去除list中的重复值
- Java去除list中的重复值
- Java去除list中的重复值
- Java去除list中的重复值
- 去除List中的重复值
- java list 去除 重复值
- java list 去除 重复值
- java list 去除 重复值
- Java list去除重复值
- java-去除List中重复的值并返回已经去重复的List
- Java中如何去除List中的重复的值?
- JAVA基础集合-去除List集合中的重复值
- Java去除List中的重复的值的多种方法
- Java中去除List中的重复的值
- Java 去除List中的重复的字符
- java list去除重复
- 去除python list中的重复值
- 在 ASP.NET Core 项目中实现小写的路由URL
- faster-rcnn笔记
- 我的汇编语言程序模板
- (crm笔记1-1) 框架的搭建
- Qt 学习之路 2(64):使用 QJsonDocument 处理 JSON
- 【Java】去除List中的重复值并按照从小到大排列
- Xcode9提示"Safe Area Layout Guide before iOS 9.0"
- STL中的内存分配方式
- Tomcat源码分析--国际化--StringManager类
- Count and Say
- 一周AI看点 | 北航设立全国首个人工智能专业,前IBM沃森首席科学家任京东副总裁
- 他假期也不闲着!他是斯坦福AI专业的研究生,谷歌无人车之父的高徒,还是广告新星、摄影师、肌肉男,帅气小鲜肉......看看你!
- POJ 1753--Flip Game
- Vetor的初始化方式