在线客服系统

浅析Java 8中的集合遍历(2)

时间:2014-10-23 20:08 来源:www.fabiaoba.com 作者:钱宇虹 点击:

  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

联系方式
李老师QQ:发表吧客服610071587 陈老师QQ:发表吧客服275774677 刘老师QQ:发表吧客服1003160816 张老师QQ:发表吧客服1003180928 联系电话:18796993035 投稿邮箱:fabiaoba365@126.com
期刊鉴别
  • 刊物名称:
  • 检索网站:
热门期刊
发表吧友情提醒

近来发现有些作者论文投稿存在大量剽窃、抄袭行为,“发表吧”对此类存在大量剽窃、抄袭的论文已经停止编辑、推荐。同时我们也提醒您,当您向“发表吧”投稿时请您一定要保证论文的原创性、唯一性,这既是对您自己负责,更是对他人的尊敬。

此类投稿的论文如果发表之后,对您今后的人生和事业将造成很大的麻烦,后果不堪设想,请您一定要慎重,三思而后行。

如因版权问题引起争议或任何其他原因,“发表吧”不承担任何法律责任,侵权法律责任概由剽窃、抄袭者本人承担。

 
QQ在线咨询
陈老师:275774677
张老师:1003180928
李老师:610071587
刘老师:1003160816
论文刊登热线:
137-7525-9981
微信号咨询:
fabiaoba-com

友情链接

申请链接