两个list集合(此例是存放实体类)去重

list1:List<Student> list1 = new ArrayList<>();

list2: List<Student> list2 = new ArrayList<>();

//循环遍历两个list删除重复值,会出现下标越界问题。

//解决方案——新建第三个list3,把list1 放到list3中,循环遍历list3,删除list1中数据,最终结果使用list1

List<Student> list3 = new ArrayList<>();

list3 .addAll(list1 );

for (int i = 0; i < list3 .size(); i++) {
   for (Student student : list2 ) {
      if (student.getName().equals(list3 .get(i).getName())) {
         for (int j = 0; j < list1 .size(); j++) {
            if ((list1 .get(j).getName()).equals(list3 .get(i).getName())) {
                                list1 .remove(j);
            }
          }
      }
    }
}

注意:1.加入list3使用方法addAll();不是add(),别犯这种小错误

           2.list存放其他类型数据也可这样去重

   

猜你喜欢

转载自blog.csdn.net/hahezhen/article/details/90140367