迭代器Iterator


public class Demo1{
  public static void main(String[] args){
    Collection collection = new ArrayList<>();
    collection.add("java");
    collection.add("hello");
    
    testIterator(collection);
    
  }
  public static void testIterator(Collection collection){
  //Iterator<E> iterator() //獲取集合中的對象
   /*
   * Iterator:叫迭代器
   * hasnext():判斷當前位置是否有值,有返回true,沒有false
   * next():取出當前位置的值,並將指針指向下一個位置
   */
  Iterator iterator  = collection.Iterator();
    while(iterator.hasNext()){
      String value = (String)iterator.next();
      System.out.println(value);
    }
  //注意點:
  //1.直接再次使用第一次的iterator進行遍歷,遍歷失敗.因為當前指針已經指向了集合的最后.
  //再次使用hasnext會直接返回false.所以如果想再次遍歷,要重新獲取迭代器對象.
   while (iterator.hasNext()) {
   String value = (String) iterator.next();
   System.out.println("iterator1:"+value);
  }

  //2.注意:集合可以存儲引用數據類型.可以存儲不同的數據類型
  collection.add(2);
  //3.再次遍歷--當集合中同時存在不同類型的數據時,需要進行容錯處理和向下轉型.
  Iterator iterator2 = collection.Iterator();
    while(iterator2.hasNext){
      Object obj = iterator.next();
      if(obj instanceOf String){
        System.out.println(obj);
      }
}
}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM