首先感谢 AlbenXie大佬的博客讲解
list去重复的方法分别有
-
判断赋值给新的list数组;
public static void main(String [] args){ List<String> list = new ArrayList<>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); list.add("aaa"); list.add("bbb"); //建立一个新的数组,如果不存在则赋值给新数组; List list1 = new ArrayList(); for(String cd: list){ //list1数组不包含cd是赋值给list1 if(!list1.contains(cd)){ list1.add(cd); } } System.out.println("去重复后的数组为"+list1) }
-
list.Remove();
public static void main(String [] agrs){ List<String> list = new ArrayList<>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); list.add("aaa"); list.add("ccc"); //list.size()相等于list的长度;这里运用了双层for循环将lisz进行对比重复的进行删除; for(int i=0; i<list.size()-1; i++){ for(int j=i+1; j<list.size(); j++){ if(list.get(i).equest(list.get(j))){ list.remove(j); } } } System.out.println("去重复后的list"+list) }
- set与list交互使用去重;
public static void main(String [] args){ List<String> list = new ArrayList<>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); list.add("aaa"); list.add("bbb"); //set数组自带去重复效果; Set set = new HashSet(); List list1 = new ArrayList(); set.addAll(list); list1.addALL(set); System.out.println("去重复的集合为"+list1) }
- 运用TerrSet()去除重复;
public static void main(String [] args){ List<String> list = new ArrayList<>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); list.add("aaa"); list.add("bbb"); //去重并且按照自然顺序排列 // Set list1 = new Tress(List); 这样也可以实现去重复效果; List list1 = new ArrayList(new TreeSet(list)); System.out.println("去重复后的数组为"+list1) }
- list运用jdk1.8的方法list.Strem().distinct().collect(Collectors.toList());
public static void main(String [] args){ List<String> list = new ArrayList<>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); list.add("aaa"); list.add("bbb"); //jdk1.8自带的去重复方法,Collectors.toList()将其转换成List集合类型; System.out.println(list.stream().distinct().collect(Collectors.toList())); }