本篇包含了两种去重,一种是List集合去重,一种是两个List集合去重合并
List集合去重,一般是两种方式,一种是遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list集合
一个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]