用for/in在Java 5.0中加强循环[Java编程]
本文“用for/in在Java 5.0中加强循环[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
for/in 循环普通叫作 加强的 for 大概 foreach,它是 Java 5.0 中一个极其便利的特点.实际上它没有供应任何新的功效,但它明显能让一些平常编码任务变得更简单一些.在本文中,您将学习这方面的很多内容,此中包含利用 for/in 在数组和调集合举行遍历,以及若何用它避免不必要(大概只是令人讨厌的)范例转换.您还将学习若何实现 for/in,理解新的 Iterable 接口的一些细节,乃至还将学习若何让您自己的定制对象用这个新的构造举行遍历.最后,您将学习 for/in 不能 做什么,以确保您能理解什么时刻挑选本来的 for 是精确的挑选.
越短越好
这是资深电脑程序员都知道的一条最基本的原理:因为 更短 意味着 打字更少,所以更短自然也就更好.这个哲学造就了 vi 这样的 IDE,在这类 IDE 中,像 :wq! 和 28G 这样的号令拥有丰富的含义.这个哲学还招致一些最奥秘的代码,比方说,变量 ar 代表 Agile Runner(也大概是 Argyle,大概 Atomic Reactor 等等,总之,您懂得就好).
有些时刻,在勤奋实现短小的时刻,程序员会将明确性抛到脑后.也就是说,过于短小和过于繁冗的代码城市让人感到痛楚不堪.变量名为 theAtomicReactorLocatedInPhiladelphia 与名为 ar 的变量一样让人讨厌和不便利.一定会有一个让人高兴的办理办法,不是吗?
这个让人高兴的办法(至少我是这么认为的)是以探求完成某事的 便利 途径为动身点,不是为了短小而短小.作为这类办理筹划的一个好例子,Java 5.0 引入了新版的 for 循环,我把它称为 for/in.它也被称为 foreach,有时也叫作 加强的 for,但这些指的都是同一个构造.不管您叫它什么, for/in 城市使代码变得更简单,正如您在本文中将看到的那样.
不利用 Iterator
利用 for/in 与“普通”for 之间的最基本辨别是,您没必要利用计数器(普通称为 i 或 count)或 Iterator.拜见清单 1,它显示了一个利用的 Iterator 的 for 循环:
清单 1. for 循环,旧式学院气势
public void testForLoop(PrintStream out) throws IOException {
List list = getList(); // initialize this list elsewhere
for (Iterator i = list.iterator(); i.hasNext(); ) {
Object listElement = i.next();
out.println(listElement.toString());
// Do something else with this list element
}
}
注意:假如您一向在看我写的关于 Tiger 新特点的文章(请参阅 参考资料),您就会知道,我常常感激 O'Reilly Media, Inc.,因为它们答应我在本文中公布我其他书中的代码示例.这意味着您得到的代码已经通过了更多测试、更多评论,比我能供应应您的多得多.所以再次感激 O'Reilly,假如您想理解 Tiger 的更多内容,请参考我撰写的一些书,它们列在 参考资源一节中,此中有完好的链接和更多的细节.
假如您等待着得到若何把这个代码改变成新的 for/in 循环的具体注释,我恐怕要让您绝望.清单 2 显示了用 for/in 改写的清单 1 中的代码,您应当相当熟习它.请拜见下面代码清单,我将尽大概具体地注释 for/in 循环(但是仍旧很难凑成一章).
清单 2. 转换成 for/in
public void testForInLoop(PrintStream out) throws IOException {
List list = getList(); // initialize this list elsewhere
for (Object listElement : list) {
out.println(listElement.toString());
// Do something else with this list element
}
}
以上是“用for/in在Java 5.0中加强循环[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |