如果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博客

07-06 23:58