Iterator接口
成员方法
boolean hasNext() 如果仍有元素可以迭代,则返回 true。
- 作用:判断集合中还有没有下一个元素,有就返回true,没有就返回false
E next() 返回迭代的下一个元素。
- 作用:取出集合中的下一个元素
Iterator迭代器,是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象,获取实现类的方式比较特殊。Collection接口中有一个方法,叫iterator(),这个方法返回的就是迭代器的实现类对象
- 作用:Iterator iterator() 返回在此 collection 的元素上进行迭代的迭代器。
迭代器的使用步骤(重点)
- 使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)
- 使用Iterator接口中的方法hasNext()判断还有没有下一个元素
- 使用Iterator接口中的方法next取出集合中的下一个元素
public class IteratorDemo {
public static void main(String[] args) {
Collection<String> coll=new ArrayList<>();
coll.add("范璟琛");
coll.add("ltf");
coll.add("lwh");
//Iterator<E>也是有泛型的,迭代器的泛型跟着集合走。
Iterator<String> ite=coll.iterator();
while(ite.hasNext()){
System.out.println(ite.next());
}
}
}
运行结果:
范璟琛
ltf
lwh
- Iterator也是有泛型的,迭代器的泛型跟着集合走。
- 没有元素,再取出元素会抛出NoSuchElementException异常。
增强for
- 内部原理其实就是一个迭代器,所以在遍历的过程中不能对集合中的元素进行增删操作。
格式:
for(元素的数据类型 变量 : 集合或者数组){
...代码操作
}
- 遍历集合
public static void main(String[] args) {
Collection<String> coll=new ArrayList<>();
coll.add("范璟琛");
coll.add("ltf");
coll.add("lwh");
//(元素的数据类型 变量 : 集合或者数组)
for(String s:coll){
System.out.println(s);
}
}
- 遍历数组
public static void main(String[] args) {
int [] a={1,2,3,4,5,6};
for(int s:a){
System.out.println(s);
}
}