java 数组转List集合后使用remove删除集合中元素

注意:(1)  使用Arrays.asList将数组转为集合后不能直接对集合进行add或remove操作

   (2)  remove()方法会改变集合的长度导致循环不正确

            String a = "1,2,3,4,5";
            String[] sz = a.split(",");
            List<String> listArray = Arrays.asList(sz);
            // 此时可对集合进行add或remove操作
            List<String> listA = new ArrayList<String>(listArray);
            
            // 注意remove会改变集合的长度,循环会不正确
            
            // 移除集合中的元素
            List<String> listB = new ArrayList<String>();
            listB.add("2");
            listB.add("5");
            listB.add("6");
            for (int i = 0; i < listA.size(); i++) {
                String aId = String.valueOf(listA.get(i));
                boolean flag = false;
                for (int j = 0; j < listB.size(); j++) {
                    // 移除集合A中和集合B相同的元素
                    if (aId.equals(listB.get(j))) {
                        listA.remove(i);
                        flag = true;
                    }
                }
                if (flag) {
                    i--;
                }
            }
            
            // 打印结果
            for (int k = 0; k < listA.size(); k++) {
                System.out.println("输出移除元素后的集合A的数据::" + listA.get(k));
            }
原文地址:https://www.cnblogs.com/aiyowei/p/11235678.html