Java基础 第三节 第七课
Iterator 接口
在程序开发中, 经常需要遍历集合中的所有元素. 针对这种需求, JDK 专门提供了一个接口java.util.Iterator.
概述
Iterator 接口也是 Java 集合中的一员. 但它与 Collection, Map 接口有所不同. Collection 接口与 Map 接口主要用于存储元素, 而 Iterator 主要用于迭代访问 (即遍历) Collection 中的元素. 因此 Iterator 对象也被称为迭代器.
想要遍历 Collection 集合, 那么就要获取该集合迭代器完成迭代操作. 下面介绍一下获取携带器的方法.
publicIterator iterator():
- 1
获取集合对象的迭代器, 用来遍历集合中的元素,
迭代的概念
迭代: 即 Collection 集合元素的通用获取方式.
在取元素之前先要判断集合中有没有元素. 如果有, 就把这个元素取出来, 再继续判断, 如果还有就再取出来. 一直把集合中的所有元素全部取出. 这种取出方式专业术语称为迭代.
常用方法
Iterator 接口的常用方法如下:
publicE next(): 返回迭代的下一个元素publicboolean hasNext(): 如果仍有元素可以迭代, 则返回 true
代码展示
import java.util.Collection;
import java.util.Iterator;
public class Test {
public static void main(String[] args) {
// 使用多态创建对象
Collection<String> collection = new ArrayList<>();
// 添加元素到集合
collection.add("littlewhite");
collection.add("middlewhite");
collection.add("bigwhite");
// 使用迭代器变量
// 获得迭代器对象
Iterator<String> iterator = collection.iterator();
while (iterator.hasNext()){ // 判断是否有迭代元素
String temp = iterator.next(); // 获取迭代出的元素
System.out.println(temp);
}
}
}
输出结果:
littlewhite
middlewhite
bigwhite
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
迭代器的实现原理
当遍历集合时:
- 首先通过调用集合的 Iterator() 方法获得迭代器对象
- 然后使用 hashNext() 方法判断集合中是否存在下一个元素
- 如果存在, 则调用 next() 方法将元素取出. 否则说明已到达了集合末尾, 停止遍历元素.
Iterator 迭代器对象在遍历集合时, 内部采用指针的方法来跟踪集合中的元素:
- 在使用 Iterator 的 next 方法之前, 迭代器的索引位于第一个元素之前, 不指向任何元素
- 当第一次调用迭代器的 next 方法后, 迭代器的索引会向后移动一位, 指向第一个元素并将该元素返回
- 当再次调用 next 方法时, 迭代器的索引会指向第二个元素并将该元素返回
- 以此类推, 直到 hasNext 方法返回 flase, 表示到达了集合的末尾, 终止对元素的遍历

增强 for
增强 for 循环 (也称 for each 循环) 是 JDK1.5 以后出来的一个高级 for 循环, 专门用来遍历数组和集合的.
它的内部原理其实是个 Iterator 迭代器. 所以在遍历的过程中, 不能对集合中的元素进行增删操作.
格式:
for(元素的数据类型 变量 : Collection 集合 or 数组){
//写操作代码
}
- 1
- 2
- 3
增强循环用于遍历 Collection 和数组. 通常只进行遍历元素, 不要在遍历的过程中对集合元素进行增删操作.
练习
练习 1: 遍历数组
public class Test {
public static void main(String[] args) {
int[] array = {1,2,3};
// 使用增强for遍历数组
for(int temp : array){
// temp 代表数组中的每个元素
System.out.println(temp);
}
}
}
输出结果:
1
2
3
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
练习 2: 遍历集合
import java.util.ArrayList;
import java.util.Collection;
public class Test27 {
public static void main(String[] args) {
Collection<String> collection = new ArrayList<>();
collection.add("littlewhite");
collection.add("middlewhite");
collection.add("bigwhite");
// 使用增强for遍历
for(String temp : collection){
System.out.println(temp);
}
}
}
输出结果:
littlewhite
middlewhite
bigwhite
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
注: 新 for 循环必须有被遍历的目标. 目标只能是 Collection 或者是数组. 新式 for 仅仅作为遍历操作出现.
文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。
原文链接:iamarookie.blog.csdn.net/article/details/110255505
- 点赞
- 收藏
- 关注作者

评论(0)