第二章 Iterator迭代器
2.1 Iterator接口
在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口java.util.Iterator
。Iterator
接口也是Java集合中的一员,但它与Collection
、Map
接口有所不同,Collection
接口与Map
接口主要用于存储元素,而Iterator
主要用于迭代访问(即遍历)Collection
中的元素,因此Iterator
对象也被称为迭代器。
Iterator接口的常用方法如下:
public E next()
:返回迭代的下一个元素。public boolean hasNext()
:如果仍有元素可以迭代,则返回 true。
由于Iterator是个接口不能直接创建对象,我们使用Collection集合的terator()方法来创建迭代器。
2.2 增强for循环
增强for循环(也称for each循环)是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。
格式:
~~~java for(元素的数据类型 变量 : Collection集合or数组){ //写操作代码 } ~~~
它用于遍历Collection和数组。通常只进行遍历元素,不要在遍历的过程中对集合元素进行增删操作。
代码示例:
Collection<String> collection = new ArrayList<>();
collection.add("张三");
collection.add("李四");
collection.add("王二");
collection.add("麻子");
// 定义一个迭代器 通过collection 的 iterator()方法来获取一个迭代器
Iterator<String> it = collection.iterator();
// while (it.hasNext()) {
// System.out.println(it.next());
// }
// 增强for循环
for (String s : collection) {
System.out.println(s);
}