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