Iterator接口介绍
iterator又名:迭代器
在程序开发中,经常需要遍历集合中的元素,针对这种需求,JDK专门提供了一个接口,Iterator接口也是Java集合中的一员,但它与Collection,Map接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代器(即遍历)Collection中的元素,因此Iterator对象也被称为迭代器
Iterator接口的常用方法如下:
- public E next():返回迭代的下一个元素(取出集合中的下一个元素)
- public boolean hasNext():如果仍有元素可以迭代,则返回true(判断集合中还有没有下一个元素,有就返回true,没有就返回false)
迭代器的使用步骤:
1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态)
2.使用Iterator接口中的方法hasNext判断还有没有下一个元素
3.使用Iterator接口中的方法next取出集合中的下一个元素
迭代器代码实现
使用集合中的方法iterator()获取迭代器的实现对象,使用Iterator接口接收(多态)
注意:
Iterator<E>接口也是有泛型的,迭代器的泛型跟着集合走,集合是什么泛型,迭代器就是什么泛型
1.使用Interator接口中的方法hasNext判断还有没有下一个元素
public static void main(String[] args) {
Collection<String > list = new ArrayList<>();
list.add("姚明");
list.add("科比");
list.add("詹姆斯");
list.add("社会强");
list.add("兵王强");
//多态 接口 实现对象
Iterator<String> iterator = list.iterator();
boolean b = iterator.hasNext();//使用Interator接口中的方法hasNext判断还有没有下一个元素
System.out.println(b);
}
2.使用Interator接口中的方法next取出元素
public static void main(String[] args) {
Collection<String > list = new ArrayList<>();
list.add("姚明");
list.add("科比");
list.add("詹姆斯");
list.add("社会强");
list.add("兵王强");
//多态 接口 实现对象
Iterator<String> iterator = list.iterator();
boolean b = iterator.hasNext();//判断集合中下一个元素是否存在
System.out.println(b);
//使用interator接口中的next的方法取出元素
String next = iterator.next();
System.out.println(next);
b = iterator.hasNext();//判断集合中下一个元素是否存在
System.out.println(b);
next = iterator.next();
System.out.println(next);
b = iterator.hasNext();//判断集合中下一个元素是否存在
System.out.println(b);
next = iterator.next();
System.out.println(next);
b = iterator.hasNext();//判断集合中下一个元素是否存在
System.out.println(b);
next = iterator.next();
System.out.println(next);
b = iterator.hasNext();//判断集合中下一个元素是否存在
System.out.println(b);
next = iterator.next();
System.out.println(next);
}
发现使用迭代器取出集合中的元素的代码,是一个重复的过程
所以我们可以使用循环优化
不知道集合中有多少元素,使用while循环
循环结束的条件,hasNext方法返回false
public class demg_02 {
public static void main(String[] args) {
Collection<String > list = new ArrayList<>();
list.add("姚明");
list.add("科比");
list.add("詹姆斯");
list.add("社会强");
list.add("兵王强");
//多态 接口 实现对象
Iterator<String> iterator = list.iterator();
//使用while循环输出
while (iterator.hasNext()){//循环判断语句就是 iterator接口中的判断集合中有没有下一个元素
String next = iterator.next();
System.out.println(next);
}
运行接口: