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); } } } }