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){ //Iteratoriterator() //获取集合中的对象 /* * 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); }}}}