迭代器主要是为了支持容器类的遍历, 发展历程如下.
Java 1.5 之前的做法
如果你用的是Java 1.5之前支持的类库, 那么很可能采用的是如下的做法来遍历集合元素:
- 使用
iterator()要求容器返回一个Iterator,Iterator将准备好返回序列的第一个元素; - 使用
next()获得序列中的下一个元素; - 使用
hasNext()检查序列中是否还有元素; - 使用
remove()将迭代器返回的元素删除.
以下是一个实例:
List<String> strs = Arrays.asList("a", "b", "c");
// Java 1.5之前的做法
Iterator<String> iterator = strs.iterator();
while (iterator.hasNext()) {
String str = (String)iterator.next();
out.println(str);
}
Java 1.5支持的做法
Iterable是Java 1.5的新特性, 主要是为了支持forEach语法, 使用容器的时候, 如果不关心容器的类型, 那么就需要使用迭代器来编写代码. 使代码能够重用.
使用方法很简单:
List<String> strs = Arrays.asList("a", "b", "c");
for (String str: strs) {
out.println(str);
}
Java 1.8支持的做法
使用接收lambda表达式的forEach方法进行快速遍历.
List<String> strs = Arrays.asList("a", "b", "c");
// 使用Java 1.8的lambda表达式
strs.forEach(out::println);
本文介绍了Java迭代器的发展历程,从Java1.5之前的迭代器使用方法到Java1.5引入Iterable接口支持foreach语法,再到Java1.8使用lambda表达式进行高效遍历。
2472

被折叠的 条评论
为什么被折叠?



