Java 集合 Iterator接口

Iterator接口:用於遍歷單列集合
成員方法:
boolean hasNext(); 判斷迭代器是否還有下一個元素
E next(); 獲取迭代器中下一個元素
void remove(); 從迭代器中刪除某個元素

//這裏會報錯地下的NoSuchElementException 沒有搜索到元素異常,是因爲迭代器的所有元素都獲取完了,所以會顯示異常,如果把最後一個刪掉就不會顯示異常了,這種獲取的方式是不推薦的不建議使用
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class text {
    public static void main(String[] args) {

        Collection<String> coll=new ArrayList<>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
        coll.add("ddd");
        //使用迭代器對集合進行遍歷
         Iterator<String> it=coll.iterator();
       
       boolean b=it.hasNext() ;
      System.out.println(b);
        //E next();  獲取迭代器中的下一個元素
        String e=it.next();
     System.out.println(e);//aaa

        b=it.hasNext();
       System.out.println(b);
        e=it.next();
        System.out.println(e);//ddd


        b=it.hasNext();
      System.out.println(b);
       e=it.next();
        System.out.println(e);

      b=it.hasNext();
      System.out.println(b);
       e=it.next();
        System.out.println(e);

       b=it.hasNext();
       System.out.println(b);//NoSuchElementException 沒有搜索到元素異常
       e=it.next();
        System.out.println(e);


    }

}
  

第二種迭代器遍歷集合

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class text {
    public static void main(String[] args) {

        Collection<String> coll=new ArrayList<>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
        coll.add("ddd");
        //使用迭代器對集合進行遍歷
        Iterator<String> it=coll.iterator();
        while (it.hasNext()){
            String e=it.next();
            System.out.println(e);
        }

    }

}

從迭代器刪除元素

//ConcurrentModificationException併發修改異常,不能這麼刪除,可以用到void remove();      從迭代器中刪除某個元素的方法
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class text {
    public static void main(String[] args) {

        Collection<String> coll=new ArrayList<>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
        coll.add("ddd");
         Iterator<String> it=coll.iterator();
          while (it.hasNext()){
            String e=it.next();
            if (e.equals("bbb")){
               coll.remove(e);//ConcurrentModificationException併發修改異常
//            it.remove();//推薦的刪除方式
            }
        }
        System.out.println(coll);
        }
     }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章