List中刪除多個相同元素或全部元素的方法

最近寫java代碼的時候遇到了需要將List中的元素全部刪除的情況,開始一股腦的就寫下了如下代碼:

for(int i=0; i<list.size(); i++){
	list.remove(i);
}

發現無論如何也刪除不乾淨,仔細一想確實如此:list的大小在減小,i<list.size() 這個循環控制條件是在變化的,當然是刪除不完全的。
下面給出兩種刪除方法,對於刪除list中的所有元素特定元素都是適用的。
方法1:倒序刪除

//      刪除方法一:倒序刪除
        for(int i=list.size()-1;i>=0;i--){
            list.remove(i);
        }
        System.out.println(list.isEmpty());

方法2:用迭代器

  //刪除方法二:用迭代器
        Iterator<String> it = list.iterator();
        while(it.hasNext()){
            it.next();
            it.remove();
        }
        System.out.println(list.isEmpty());

對於刪除特定元素的代碼如下:

List<String> list = new ArrayList<>();
        list.addAll(Arrays.asList("A","A","B","B","C","D","E"));
        System.out.println(list);
        
        //for循環
        for(int i =list.size()-1;i>=0;i--){
            if(list.get(i).equals("A")){
                list.remove(i);
            }
        }
        System.out.println(list);
        //迭代器
        Iterator<String> it = list.iterator();
        while(it.hasNext()){
            if(it.next().equals("B")){
                it.remove();
            }
        }
        System.out.println(list);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章