版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BinCain1993/article/details/78327742
List中数据去重复,可以有以下几种做法。主要利用:1、list有序,可以遍历判断重复。2、set不能插入重复数据 @Test public void testDeleteListRepeat1(){ // 需要去重的集合 List<Integer> listOld = new ArrayList<>(); listOld.add(111); listOld.add(222); listOld.add(111); listOld.add(222); // 形成的新集合 List<Integer> listNew = new ArrayList<>(); //直接判断新list中是否有重复的数据(可以保证新list的顺序和原list去重后一样) for (Integer listIndex : listOld) { if (!listNew.contains(listIndex)) { listNew.add(listIndex); } } Iterator iterator = listNew.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } }
@Test public void testDeleteListRepeat2(){ // 需要去重的集合 List<Integer> listOld = new ArrayList<>(); listOld.add(111); listOld.add(222); listOld.add(111); listOld.add(222); List<Integer> listNew = new ArrayList<>(); // 新建的set(作转换用) Set setTransfer = new HashSet(); //利用set不能插入重复数据,将重复数据干掉(注意:原list到新list数据的顺序不能保证) setTransfer.addAll(listOld); listNew.addAll(setTransfer); Iterator iterator = listNew.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } }
@Test public void testDeleteListRepeat3(){ // 需要去重的集合 List<Integer> listOld = new ArrayList<>(); listOld.add(111); listOld.add(222); listOld.add(111); listOld.add(222); List<Integer> listNew = new ArrayList<>(); // 新建的set(作转换用) Set setTransfer = new HashSet(); //利用set插入重复数据返回false 阻止新list重复 for (Integer listIndex : listOld) { if (setTransfer.add(listIndex)) { listNew.add(listIndex); } } //遍历输出去重复后的list Iterator iterator = listNew.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } }
@Test public void testDeleteListRepeat4(){ // 需要去重的集合 List<Integer> listOld = new ArrayList<>(); listOld.add(111); listOld.add(222); listOld.add(111); listOld.add(222); //这种写法和 testDeleteListRepeat2 一样 List<Integer> listNew = new ArrayList<>(new HashSet<>(listOld)); //遍历输出去重复后的list Iterator iterator = listNew.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } }
运行的测试结果如下: 111 222 Process finished with exit code 0