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