遍歷ArrayList刪除指定元素


清空List,直接調用clear()方法,或者直接賦值為null便可。那刪除List中指定元素呢?

遍歷list,遍歷到符合條件的元素,then remove()?

我們來看下面三種代碼就知道結果啦。

    public static void removeList1() {
        List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("4");
        list.add("5");
        System.out.println("刪除前集合的長度為:" + list.size()+":"+list);
        for (int i = 0; i < list.size(); i++) {
            System.out.println(i + "---" + list.get(i));
            list.remove(i);
        }
        System.out.println("刪除后集合的長度為:" + list.size()+":"+list);
    }

刪除前集合的長度為:6:[1, 2, 3, 4, 4, 5]
0---1
1---3
2---4
刪除后集合的長度為:3:[2, 4, 5]

    public static void removeList2() {
        List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("4");
        list.add("5");
        System.out.println("刪除前集合的長度為:" + list.size()+":"+list);
        for (int i = 0, len = list.size(); i < len; i++) {
            System.out.println("len="+len+";i="+i+";刪除元素:"+list.get(i));
            list.remove(i);
            len--;
            i--;
        }
        System.out.println("刪除后集合的長度為:" + list.size()+":"+list);
    }

刪除前集合的長度為:6:[1, 2, 3, 4, 4, 5]
len=6;i=0;刪除元素:1
len=5;i=0;刪除元素:2
len=4;i=0;刪除元素:3
len=3;i=0;刪除元素:4
len=2;i=0;刪除元素:4
len=1;i=0;刪除元素:5
刪除后集合的長度為:0:[]

public static void removeList3() {
        List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("4");
        list.add("5");
        System.out.println("刪除前集合的長度為:" + list.size()+":"+list);
        Iterator<String> it=list.iterator();
        while(it.hasNext()&&!it.next().equals("")){
            it.remove();
        }
        System.out.println("刪除后集合的長度為:" + list.size()+":"+list);
    }

刪除前集合的長度為:6:[1, 2, 3, 4, 4, 5]
刪除后集合的長度為:0:[]

From:

https://blog.csdn.net/liusong0605/article/details/48105103

 

之前在面試的時候遇到過這樣一個問題,

list的大小為100,其中存放的值分別為1,2,3,... , 100, 要求刪除list中能被3整除的元素,返回新的list。

考察的也是ArrayList數組刪除時,所刪除的元素后面的元素都會前移這個知識點。

//list的大小為100,其中存放的值分別為1,2,3,... , 100,
        //要求刪除list中能被3整除的元素,返回新的list
        for(int i=1;i<=100;i++){
            list.add(i);
        }
        int lengh=list.size();
for(int i=0;i<lengh;i++){ if(list.get(i)%3==0){ list.remove(i); i--; lengh--; } }
for(Integer num : list){ System.out.print(num + " "); } System.out.println();

 


免責聲明!

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



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