本篇包含了两种去重,一种是List集合去重,一种是两个List集合去重合并
List集合去重,一般是两种方式,一种是遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list集合
参考链接:http://blog.csdn.net/cs6704/article/details/50158373
一个List去重:
public static void main(String[] args) { List<String> list1 = new ArrayList<String>(); list1.add("111"); list1.add("222"); list1.add("111"); list1.add("222"); System.out.println("list1:" + list1); Set set = new HashSet(); List newList = new ArrayList(); for (String str : list1) { if(set.add(str)){ newList.add(str); } } System.out.println("去重后的list集合:" + newList); }
list1:[111, 222, 111, 222] 去重后的list集合:[111, 222]
public static void main(String[] args) { List<String> list1 = new ArrayList<String>(); list1.add("111"); list1.add("222"); list1.add("111"); list1.add("222"); System.out.println("list1:" + list1); List<String> newList = new ArrayList<String>(); for (String str : list1) { if(!newList.contains(str)){ newList.add(str); } } System.out.println("去重后的list集合:" + newList); }
list1:[111, 222, 111, 222] 去重后的list集合:[111, 222]
public static void main(String[] args) { List<String> list1 = new ArrayList<String>(); list1.add("111"); list1.add("222"); list1.add("111"); list1.add("222"); System.out.println("list1:" + list1); Set set = new HashSet(); List newList = new ArrayList(); set.addAll(list1); newList.addAll(set); System.out.println("去重后的list集合:" + newList); }
list1:[111, 222, 111, 222] 去重后的list集合:[111, 222]
public static void main(String[] args) { List<String> list1 = new ArrayList<String>(); list1.add("111"); list1.add("222"); list1.add("111"); list1.add("222"); System.out.println("list1:" + list1); List newList = new ArrayList(new HashSet(list1)); System.out.println("去重后的list集合:" + newList); }
list1:[111, 222, 111, 222] 去重后的list集合:[111, 222]
两个List集合去重合并:
public static void main(String[] args) { List<String> list1 = new ArrayList<String>(); list1.add("111"); list1.add("222"); list1.add("333"); list1.add("444"); List<String> list2 = new ArrayList<String>(); list2.add("01"); list2.add("02"); list2.add("03"); list2.add("04"); list2.add("111"); list2.add("222"); list2.add("555"); list2.add("666"); System.out.println("list1:" + list1); System.out.println("list2:" + list2); list1.remove(list2); list1.addAll(list2); list1 = new ArrayList<String>(new HashSet<>(list1)); System.out.println("去重后的list集合:" + list1); }
list1:[111, 222, 333, 444] list2:[01, 02, 03, 04, 111, 222, 555, 666] 去重后的list集合:[01, 02, 03, 04, 111, 222, 333, 444, 555, 666]