一、java集合框架图
PS 非特殊说明,JDK版本默认为1.8
二、Iterator的前世今生
从上面的框架图中可以看到,java的集合类主要分为两大家族,一个是以Collection为首,另一个是以map为首。每个分支都枝繁叶茂,接下来就从上图的第一个接口Iterator逐个介绍。
在说Iterator前不得不提下被Iterator拍在沙滩上的前浪Enumeration,这可不是我说的,是官方文档上说的。
该接口提供了两个方法来枚举向量的元素,哈希表的键以及哈希表中的值。枚举还用于指定SequenceInputStream的输入流。
但是
此接口的功能由Iterator接口复制。此外,Iterator添加了可选的remove操作,并且具有较短的方法名称。新的实现应优先考虑使用Iterator而不是Enumeration。
public interface Enumeration<E> {
//是否还有元素
boolean hasMoreElements();
//返回下一个元素
E nextElement();
}
前浪被抛弃的原因也写出来了。Iterator实现了更短的名字,更多的功能。
由此可见,短小精悍,会的招数多才受人欢迎。
三、Iterator的血脉传承
1、Iterator接口
Iterator接口总共有4个方法
1)forEachRemaining
对每个剩余元素执行给定操作,直到所有元素都被处理或操作抛出异常。 如果指定了迭代的顺序,则按照迭代的顺序执行操作。
由该操作引发的异常被转发给调用者。