Iterator接口及遍历集合元素的方法


    Iterator接口也是java集合框架的成员,但它与Collection、Map系列的集合不一样。Collection、Map系列集合用于盛装对象,而Iterator用于遍历集合中的元素,所以Iterator对象也被称为迭代器。

Iterator接口定义了一下方法:

1、 boolean hashNext():如果迭代的集合元素还没被遍历,则返回true

2、 Object next():返回集合里下一个元素。

3、Void remove():删除集合里上一次next方法返回的元素。

 

 public static void main(String[] args) {
  Collection c1=new HashSet();
 c1.add("孙悟空");
 c1.add("猪八戒");
 c1.add("唐三藏");
 Iterator it=c1.iterator();  //获取c1集合对应的迭代器
 
 while(it.hasNext()){
  String book=(String)it.next();  //it.next()返回的是object类型,需要强转
  System.out.println(book);
  if(book.equals("唐三藏")){
     it.remove();    //从集合中删除上一次next方法返回的元素
    }
 }
  System.out.println(c1);
 }

1、Iterator必须依附于Collection对象,有一个Iterator对象就必然有一个与之关联的Collection对象

2、当使用Iterator对集合元素进行迭代时,Iterator并不是把集合元素传给了迭代变量,只是把元素的值传给了变量,所以修改迭代变量的值对集合元素本身没有任何改变。

3、当使用Iterator或foreach语句来反问Collection集合时,collection里的元素不能被改变,否则会引起java.util.ConcurrentModificationException异常。

 

使用foreacn循环遍历集合元素:

public static void main(String[] args) {
 Collection c1=new HashSet();
 c1.add("孙悟空");
 c1.add("猪八戒");
 c1.add("唐三藏");
 Iterator it=c1.iterator();  //获取c1集合对应的迭代器
 for(Object obj:c1){    //使用foreach语句遍历
  String book=(String)obj;
  System.out.println(book);
     }
   }

}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM