- Collection接口继承于Iterable接口。该接口有 iterator() 方法,那么所有实现了Collection接口的集合类都有一个 iterator() 方法,用以返回一个实现了Iterator接口的对象
- Iterator 仅用于遍历集合,其本身并不提供承装对象的能力
- 集合对象每次调用 iterator() 方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前
- 常用方法
boolean hasnext( )
boolean next( )
void remove( )
ArrayList<String> arrList=new ArrayList<>();
arrList.add("abc");
arrList.add("def");
Iterator iterator=arrList.iterator();
while(iterator.hasNext())
System.out.println(iterator.next());
1.跳过集合中的某些元素
Iterator iterator = coll.iterator();
while((iterator.next()) != null)
System.out.println(iterator.next());
2.死循环:一直输出集合中的第一个元素(因为每次调用iterator()方法 都会生成一个新对象并指向集合第1个元素之前)
while (arrList.iterator().hasNext())
System.out.println(coll.iterator().next());
3.未调用next()就调用了 remove 方法
ArrayList<String> arrList=new ArrayList<>();
arrList.add("abc");
arrList.add("def");
Iterator iterator=arrList.iterator();
while(iterator.hasNext())
iterator.remove();
4.调用 next() 方法之后已经调用了remove方法,再次调用remove()方法
if(iterator.hasNext())
{
iterator.next();
iterator.remove();
}
iterator.remove();