快速业务通道

用for/in在Java 5.0中增强循环 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
一些用来演示的数据):

清单 11. 输出正是您想要的 —— 许多打印!

run-ch07:    [echo] Running Chapter 7 examples from Java 5.0 Tiger: A Developer''s Notebook    [echo] Running ForInDemo...    [java] Assigning arguments to lists...    [java] word1 word2 word3 word4 word1    [java] Printing words from wordList (ordered, with duplicates)...    [java] word1 word2 word3 word4 word1    [java] Printing words from wordset (unordered, no duplicates)...    [java] word4 word1 word3 word2

用for/in在Java 5.0中增强循环(5)

时间:2011-02-05 Brett McLaughlin

类型转换之痛

迄今为止,在处理集合的时候,您已经看到 for/in 使用通用的变量类型,例如 Object。这么做很好,但是没有真正利用到 Tiger 的另一项特性 —— 泛型(有时也叫作 参数化类型)。我把泛型的细节留给 developerWorks 即将针对这个主题推出的教程,但是泛型让 for/in 变得更加强大。

记得 for/in 语句的 声明 部分创建了一个变量,它代表要遍历的集合中每个项目的类型。在数组中,类型非常明确,因为类型是强类型的, int[] 只能包含整数,所以在循环中没有类型转换。在您通过泛型使用类型化列表时,也有可能做到这点。清单 12 演示了几个简单的参数化集合:

清单 12. 向集合类型添加参数意味着可以避免以后的类型转换

List      <String> wordlist = new ArrayList      <String>(); Set      <String> wordset = new HashSet      <String>();

现在,您的 for/in 循环可以避开老式的 Object,变得更加具体。清单 13 演示了这一点:

清单 13. 在知道集合中的类型时,您的循环体可以更加具有类型针对性

     for (String word : wordlist) {   System.out.print(word + " "); }

作为一个更加完整的示例,清单 14 沿用了清单 10 所示的程序,并添加了一些通用的列表和更加具体的 for/in 循环:

清单 14:可以利用泛型重写清单 10

package com.oreilly.tiger.ch07; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class ForInDemo {   public static void main(String[] args) {    // These are collections to iterate over below      List<String> wordlist = new ArrayList<String>();    Set<String> wordset = new HashSet<String>();    // Basic loop, iterating over the elements of an array    //  The body of the loop is executed once for each element of args[].    //  Each time through, one element is assigned to the variable word.    System.out.println("Assigning arguments to lists...");    for (String word : args) {     System.out.print(word + " ");     wordlist.add(word);     wordset.add(word);    }    System.out.println();    // Iterate through the elements of the List now    //  Since lists have an order, these words should appear as above    System.out.println("Printing words from wordlist " +     "(ordered, with duplicates)...");    for (      String word : wordlist) {     System.out.print((String)word + " ");    }    System.out.println();    // Do the same for the Set. The loop looks the same but by virtue

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号