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);
}