Iterator迭代器接口介绍
Collection接口继承了Iterator接口,在该接口中包含一个名为iterator的抽象方法,所有实现了Collection接口的容器类对该方法做了具体实现。iterator方法会返回一个iterator接口类型的迭代器对象,在该对象中包含三个方法用于实现对单例容器的迭代处理。、
Iterator接口定义了如下方法:
boolean hasNext();
//判断游标当前位置的下一个位置是否还有元素没有被遍历;Object next();
//返回游标当前位置的下一个元素并将游标移动到下一个位置;void remove();
//删除游标当前位置的元素,在执行完next后该操作只能执行一次;
Iterator迭代器的使用
- 迭代List接口类型的容器
public class IteratorListTest {
public static void main(String[] args) {
//实例化容器
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
//获取元素
//获取迭代器对象
Iterator<String> iterator = list.iterator();
//方式一:在迭代器中,通过while循环获取元素
while(iterator.hasNext()){
String value = iterator.next();
System.out.println(value);
}
System.out.println("-------------------------------");
//方法二:在迭代器中,通过for循环获取元素
for(Iterator<String> it = list.iterator();it.hasNext();){
String value = it.next();
System.out.println(value);
}
}
}
- 迭代Set接口类型容器
public class IteratorSetTest {
public static void main(String[] args) {
//实例化Set类型的容器
Set<String> set = new HashSet<>();
set.add("a");
set.add("b");
set.add("c");
//方式一:通过while循环
//获取迭代器对象
Iterator<String> iterator = set.iterator();
while(iterator.hasNext()){
String value = iterator.next();
System.out.println(value);124
}
System.out.println("-------------------------");
//方式二:通过for循环
for(Iterator<String> it = set.iterator();it.hasNext();){
String value = it.next();
System.out.println(value);
}
}
}
- 迭代Map接口类型容器