java.util.Iterator接口:迭代器(对集合进行遍历)
有两个常用方法
boolean hasNext()
判断集合中还有没有下一个元素,如果仍有元素可以迭代,则返回true
E netx()
返回迭代的下一个元素。
Iterator迭代器是一个接口,无法直接使用,需要使用Iterator接口实现类对象,获取实现类的方式比较特殊
Collection接口中有一个方法叫 iterator(),这个方法返回的就是迭代器实现类对象
迭代器的使用步骤
- 使用集合中的方法 iterator()获取迭代器的实现类对象,使用 Iterator 接口接收(多态)
- 使用 Iterator 接口中的方法 hasNext 判断是否有下一个元素
- 使用 Iterator 接口中的方法 next 取出集合中的下一个元素
代码实现
package demoIterator;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class demomain {
public static void main(String[] args) {
//创建一个集合对象
Collection<String> coll = new ArrayList<>();
coll.add("小王");
coll.add("小明");
coll.add("小红");
//多态 接口 实现类对象
Iterator<String> it = coll.iterator();
//使用Iterator接口中的方法hasNext判断还有没有下一个元素
boolean b = it.hasNext();
System.out.println(b); //true
String s = it.next();
System.out.println(s); // 小王
s = it.next();
System.out.println(s); // 小明
迭代器实现原理
Iterator it = coll.iterator(); 获取迭代器的实现类对象,并且会把指针指向集合的 -1 索引
next() 做了两件事情:1 取出下一个元素 2 会把指针向后移动一位