用for/in在Java 5.0中增强循环 - 编程入门网
// of using a Set, word order is lost, and duplicates are discarded.
System.out.println("Printing words from wordset " +
"(unordered, no duplicates)...");
for (
String word : wordset) {
System.out.print((String)word + " ");
}
}
}
当然,在这些例子中,类型转换还没有完全消失。但是,这些工作正逐步转交给编译器完成(如果您对这类事情感兴趣,那么可以说这就是泛型或多或少要做的事)。在编译的时候,所有这些类型都会被检测,您可能得到相应的错误信息。如果有人能做这项工作,那么,其他所有人也能这么做,不是吗? 用for/in在Java 5.0中增强循环(6)时间:2011-02-05 Brett McLaughlin类与 for/in 的集成 迄今为止,我只是针对 Java 事先打包的类和类型(array、list、map、set 和其他集合)进行遍历。尽管这已经相当不错,但编程语言的美丽在于它们能帮助您定义自己的类。定制对象是大型应用程序的支柱。这一节要处理的只是允许 for/in 构造使用您自己的对象所涉及的一些概念与步骤。 一个新接口 到了现在,您应当熟悉 java.util.Iterator 接口了,倘若您不熟悉它,清单 15 演示了这个接口,而且是按照它在 Tiger 出现的形式演示的: 清单 15. Iterator 长时间以来一直是 Java 语言的中流砥柱
但是,为了利用 for/in,需要在您的域知识中添加另一个接口 java.lang.Iterable。该接口如清单 16 所示: 清单 16. Iterable 接口是 for/in 构造的基础
为了让您的对象或类能与 for/in 一起工作,对象和类需要实现 Iterable 接口。这留给您两个基本场景: 扩展现有的、已经实现了 Iterable(因此也就已经支持 for/in)的集合类。 手动处理遍历,定义自己的 Iterable 实现。 手动处理遍历 如果有可能,我极力建议您用定制对象扩展现有的集合。事情会变得极为简单,而您可以避免所有繁琐的细节。清单 17 显示了一个这样做的类: 清单 17. 扩展现有的集合是利用 for/in 的捷径
用for/in在Java 5.0中增强循环(7)时间:2011-02-05 Brett McLaughlin因为 LinkedList 已经可以使用 for/in,所以,不需要特殊的代码,就可以在 for/in 中使用这个新类。清单 18 演示了这点,以及做到这一点需要做的工作是多么地少: 清单 18. Iterable 接口是 for/in 构造的基础
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |