置百丈玄冰而崩裂,掷须臾池水而漂摇。

[JAVA] 去除List集合中重复项的方法

JAVA 强强

JAVA 去除List集合中重复项的方法


方法一、使用hashSet  (保留集合顺序)

public static void main(String[] args) {
    List<String> list = new ArrayList<>();
    list.add("aaa");
    list.add("aaa");
    list.add("bbb");
    list.add("ccc");
    list.add("ddd");
    list.add("ddd");
    
    Set set = new HashSet();
    List newList = new ArrayList();
    for (String s : list) {
        if(set.add(s)){
            newList.add(s);
        }
    }
    System.out.println(newList);
}

输出效果:


方法二、使用List类的contains方法,用一个新集合判断插入 (保留集合顺序)

public static void main(String[] args) {
    List<String> list = new ArrayList<>();
    list.add("aaa");
    list.add("aaa");
    list.add("bbb");
    list.add("ccc");
    list.add("ddd");
    list.add("ddd");


    List newList = new ArrayList();
    for (String s : list) {
        if(!newList.contains(s)){
            newList.add(s);
        }
    }
    System.out.println(newList);
}

输出效果:

方法三:直接set.addAll方法 (无序)

 public static void main(String[] args) {
    List<String> list = new ArrayList<>();
    list.add("aaa");
    list.add("aaa");
    list.add("ddd");
    list.add("bbb");
    list.add("ccc");
    list.add("ddd");
    list.add("aaa");



    Set set = new HashSet();
    var newList =new ArrayList<>();
    set.addAll(list) ;
    newList.addAll(set);
    System.out.println(newList);
}

方法四:使用TreeSet,   HashSet无排序功能,TreeSet有这个功能(有序)

public static void main(String[] args) {
    List<String> list = new ArrayList<>();
    list.add("bbb");
    list.add("ccc");
    list.add("ddd");
    list.add("ddd");
    list.add("aaa");
    list.add("aaa");


    var newList =new ArrayList<>(new TreeSet< >(list));
    System.out.println(newList);
}

发表评论:

验证码