List去重的五种方法
程序员文章站
2022-06-10 08:31:31
...
-
//1 去重第一种 使用Set转换
-
//2 利用Set辅助判断重复
-
//3 使用Java新特性stream
-
//4 双重循环使用remove()
-
//5 使用新的List,用contains判断
package com.imooc.list_liminatel_uplicate;
import java.util.*;
import java.util.stream.Collectors;
/**
* @description:
* @author: WhiteCrowZHZ
* @date: 2020/5/27 15:07
*/
public class Demo {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(1);
//1 去重第一种 使用Set转换
Set<Integer> set1 = new TreeSet<>();
List<Integer> list1 = new ArrayList<>();
set1.addAll(list);
list1.addAll(set1);
System.out.println("list1" + list1);
//改为一行代码
List<Integer> list6 = new ArrayList<>(new HashSet<>(list));
System.out.println("list6" + list6);
//2 利用Set辅助判断重复
Set<Integer> set2 = new TreeSet<>();
List<Integer> list2 = new ArrayList<>();
for(Integer integer : list) {
if(set2.add(integer)) {
list2.add(integer);
}
}
System.out.println("list2" + list2);
//3 使用Java新特性stream
List<Integer> list3 = list.stream().distinct().collect(Collectors.toList());
System.out.println("list3" + list3);
//4 双重循环使用remove()
List<Integer> list4 = new ArrayList<>(list);
for(int i = 0; i < list4.size(); i++) {
for(int j = 0; j < list4.size(); j++) {
if(i != j && list4.get(i).equals(list4.get(j))) {
list4.remove(j);
}
}
}
System.out.println("list4" + list4);
//第五种方式 使用新的List,用contains判断
List<Integer> list5 = new ArrayList<>();
for(Integer integer : list) {
if(!list5.contains(integer)) {
list5.add(integer);
}
}
System.out.println("list5" + list5);
}
}
下一篇: List集合去重的几种方法