如果list中装的是简单元素,int 类型,string类型,想要去重,并且保持在list中的顺序,最快的方式如下:
使用 LinkedHashSet,去重加有序。
使用 HashSet,只去重,但顺序任意。
public static void t1(){
List<Integer> list = new ArrayList<>(Arrays.asList(1, 1, 2, 2, 3, 3, 4, 5, 6, 6, 7, 8));
System.out.println(list); //输出[10, 1, 1, 2, 2, 3, 3, 4, 5, 6, 6, 7, 8]
LinkedHashSet<Integer> linkedHashSet = new LinkedHashSet<>(list);
List<Integer> distinct = new ArrayList<>(linkedHashSet);
System.out.println(distinct); //输出[10, 1, 2, 3, 4, 5, 6, 7, 8]
}
public static void t2(){
List<String> list = new ArrayList<>(Arrays.asList("张三","张三", "李四", "李四", "tom", "tom", "mike"));
System.out.println(list); //[张三, 张三, 李四, 李四, tom, tom, mike]
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>(list);
List<String> distinct = new ArrayList<>(linkedHashSet);
System.out.println(distinct); //[张三, 李四, tom, mike]
}
参考
Java中List集合对象去重及按属性去重的8种方法_java list对象去重_//承续缘_纪录片的博客-CSDN博客