文章目录
1、iterator迭代器
用来遍历Colletion接口实现的集合,返回iterator接口的实例。
(1)iterator迭代器:专门用来遍历List、Set接口
实现的集合,它不是一个容器,是Colletion接口中的一个遍历集合的方法,相当于火车上的乘务员的检票过程;当然也可以用于遍历HashMap,因为map中的Entry里面有一个个的Key,这个Key是Set(唯一不重复的,而Set可以用iterator遍历),所以可以通过Key得到Value,这就实现了HashMap的遍历了。
(2)迭代器模式:提供一种方法访问一个容器(container)对象中各个元素,而不需要暴露该对象的内部细节。迭代器模式,可以说是专门为集合而生;
(3)集合对象每次调用iterator()方法都得到一个全新的的迭代器对象,默认游标都在集合的第一元素之前
,下面有图示;
(4)内部有三个常见方法
①hasNext() :判断当前集合里还有没有元素可有进行遍历;
②next() : 用来遍历打印集合中的元素;
③remove() : 可以在遍历到指定的元素时进行移除指定的元素,要注意的是在调用remove()时,一定要先调用next()方法,先让指针(游标)下移到元素上。(图中coll是集合对象)
2、开发中推荐使用方式
Iterator iterator = coll.iterator();//coll为集合对象
while(iterator.hasNext()) {
// next():①指针下移;②将下移以后集合位置上的元素返回。
System.out.println (iterator.next());
}
3、错误的使用方式
(1)错误方式一,没有调用hasNext()
输出方式为:打印一个元素后跳一个元素不打印,再去打印下一个,就是去移动指针了,但没有去打印。并会报java.util.NoSunchElementException
Iterator iterator= coll.iterator();//col