
while (e.hasMoreElements())
{
String name = (String) e.nextElement();
System.out.println(name);
}
代码清单1:使用枚举处理字符串向量
List names = new LinkedList();
names.add("Apple");
names.add("Orange");
Iterator i = names.iterator();
while (i.hasNext())
{
String name = (String) i.next();
System.out.println(name);
}
代码清单2:使用迭代器处理字符串列表
Java 1.2推出了集合类(Collections),并通过一个迭代器类(Iterator)实现了迭代器设计模式。因为当时在Java 1.2中还没有泛型,所以对迭代器返回的对象进行强制类型转换仍然是必要的。对于Java版本1.2至1.4,遍历字符串列表如代码清单2所示。
Java 5给出了泛型、Iterable接口和增强for循环。在增强for循环中,迭代器的创建和调用它的hasNext()和next()方法都发生在幕后,不需要明确地写在代码中,因此代码显得更为紧凑。使用Java 5,我们的例子类似代码清单3所示,请注意,在Java 5我们使用的仍然是主动迭代器。
List names = new
LinkedList();
names.add("Apple");
names.add("Orange");
for (String name : names)
System.out.println(name);
代码清单3:使用泛型和增强for循环
List names = new LinkedList<>();
names.add("Apple");
names.add("Orange");
names.forEach(name-> System.out.println(name));
代码清单4:Java8使用forEach()方法进行迭代
Java 7为了避免泛型的冗长给出了钻石运算符<>,从而避免了使用new运算符实例化泛型类时重复指定数据类型。从Java 7开始,代码清单3中的第一行可以简化成以下形式:List names = new LinkedList<>();
3 Java 8中的迭代(Iteration in Java 8)
3.1 forEach()方法
Java8为我们提供了新的迭代途径,它使用lambda表达式开展集合的遍历。Java8最主要的新特性就是lambda表达式以及与此相关的特性,如流(streams),方法引用(method references)和功能接口(functional interfaces)。正是因为这些新特性使我们能够使用被动迭代器而不是传统的主动迭代器,特别是Iterable接口提供了一个被动迭代器的缺省方法(default method)叫做forEach()。缺省方法是Java 8的又一个新特性,是一个接口方法的缺省实现,在这种情况下,forEach()方法实际上是用类似于代码清单3的主动迭代器方式来实现的。
(www.fabiaoba.com),是一个专门从事期刊推广期刊发表、投稿辅导、发表期刊的网站。
本站提供如何投稿辅导、发表期刊,寻求论文刊登合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级论文刊登/国家级论文刊登/
CSSCI核心/医学投稿辅导/职称投稿辅导。
投稿邮箱:fabiaoba365@126.com
在线咨询:
275774677、
1003180928
在线咨询:
610071587、
1003160816
联系电话:13775259981
主管单位:山东省教育厅 主办单位:山东省教委 国内刊号:CN 37-1025/G4 国际刊号:IS...
期刊简介: 《种子科技》(月刊)创刊于1983年,曾用刊名:(种子通讯)是中国种子协...
主管单位:湖北省国资委 主办单位:湖北省经济干部管理学院 出版地:湖北省武汉市 国...
期刊简介: 《高等工程教育研究》是我国第一份、也是唯一一份面向工程教育研究的全国...
主管单位:国家民族事务委员会 主办单位:西北民族大学 出版地:甘肃省兰州市 国际标...
期刊简介: 主管单位:吉林省社会保险事业管理局 主办单位:吉林省人力资源和社会保障...
近来发现有些作者论文投稿存在大量剽窃、抄袭行为,“发表吧”对此类存在大量剽窃、抄袭的论文已经停止编辑、推荐。同时我们也提醒您,当您向“发表吧”投稿时请您一定要保证论文的原创性、唯一性,这既是对您自己负责,更是对他人的尊敬。
此类投稿的论文如果发表之后,对您今后的人生和事业将造成很大的麻烦,后果不堪设想,请您一定要慎重,三思而后行。
如因版权问题引起争议或任何其他原因,“发表吧”不承担任何法律责任,侵权法律责任概由剽窃、抄袭者本人承担。