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);
        }
     }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章