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