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));
            }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM