1、单个 List 去重
如果用的是 Set 集合就不用怕重复的问题了,如果用的 List 就要想办法将它变为 Set。
importjava.util.ArrayList; importjava.util.HashSet; importjava.util.List; publicclassTest { publicstaticvoidmain(String[] args) { List<String>l1=newArrayList<String>(); l1.add("a"); l1.add("b"); l1.add("c"); l1.add("e"); l1.add("e"); l1.add("e"); l1.add("e"); l1.add("a"); List<String>listWithoutDup=newArrayList<String>(newHashSet<String>(l1)); for(Stringstr : listWithoutDup){ System.out.println(str); } } }
2、两个集合合并后去重
importjava.util.ArrayList; importjava.util.HashSet; importjava.util.List; publicclassTest { publicstaticvoidmain(String[] args) { List<String>l1=newArrayList<String>(); l1.add("a"); l1.add("a"); l1.add("c"); l1.add("c"); List<String>l2=newArrayList<String>(); l2.add("b"); l2.add("b"); l2.add("k"); l2.add("k"); l1.removeAll(l2);//此处指的是将与l2重复的删除l1.addAll(l2);//此处指加上l2// 如果保证l1,l2;2个各自的 LIST 本身不重复,此行代码不用写。否则会出现合并后 LIST 重复的问题,具体看业务需要l1=newArrayList<String>(newHashSet<>(l1)); for(Stringstr : l1){ System.out.println(str); } } }
结果
b
c
a
k
l1 = new ArrayList<String>(new HashSet<>(l1));
Ps:如果没有这条以上代码,则结果为:
a
a
c
c
b
b
k
k