List 的删除

List 不要在循环中使用remove 删除。可以新加一个List ,把符合条件的元素加入到这个list 中,然后调用removeAll 。

比如:(增强for 循环需要判断 list 是否是 null (可以是空的list,但是不可是null ,否则会报NullPointerException))

Apple apple1 = new Apple("1","tom","20");
        Apple apple2 = new Apple("2","jack","30");
        Apple apple3 = new Apple("2","dick","30");
        List<Apple> arr1 = new ArrayList<>();
        arr1.add(apple1); arr1.add(apple2);arr1.add(apple3);
        
        AppleDTO ato1 = new AppleDTO("tom","30","male");
        AppleDTO ato2 = new AppleDTO("dick","30","female");
        List<AppleDTO> arr2 = new ArrayList<>();
        arr2.add(ato1);   arr2.add(ato2);
        
        List<Apple> arr = new ArrayList<>();
        for(Apple a1: arr1) {
            for(AppleDTO a2:arr2) {
                if(a1.getName().equals(a2.getName())) {
                    arr.add(a1);
                    break;
                }
                
            }
        }
        
        arr1.removeAll(arr);
原文地址:https://www.cnblogs.com/z360519549/p/11782826.html