首頁  >  文章  >  Java  >  java集合迭代器Iterator中的remove陷阱

java集合迭代器Iterator中的remove陷阱

高洛峰
高洛峰原創
2016-11-22 17:08:241227瀏覽

package TestList;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.TreeSet; &*/
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    ("aaa");
list.add("bbb");
        list.add("ccc");
        Iterator t = list.iterator();    if(t.next().equals( "bbb")){   //使用iterator遍歷list集合時,如果想要刪除任何集合內元素,必須在正好遍歷倒數第二個元素的時候去刪除
                list.remove("ccc"); }
        }
        
        TreeSetset = new TreeSet( set.add("eee");
        set.add("fff");
Iterator t1 = set.iterator();
        while(t1.hasNext()){
            if(t1.next().equ        if(t1.next().equals("f.)使用集合時刪除時刪除集合時刪除}                set.remove("eee");
     }

}

由於List,Set在實作Iterator時存在一定的差異,因此導致了List,Set在迭代的同時刪除集合元素的會有不同的表現

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn