zoukankan      html  css  js  c++  java
  • JDK 1.5 新特性——增强for循环

      简单的介绍。

    View Code
     1 public class ForEach {
     2 
     3     /**
     4      * @author yokoboy
     5      *  2012年7月24日
     6      */
     7     public static void f1(int[] a) {
     8         for (int i = 0; i < a.length; i++) {
     9             System.out.println(a[i]);
    10         }
    11     }
    12 
    13     public static void f2(int[] a) {
    14         for (int i : a) {
    15             System.out.println(i);
    16         }
    17     }
    18 
    19     public static void main(String[] args) {
    20         int[] a1 = {1, 2, 3, 4};
    21         f1(a1);//传统for循环
    22         f2(a1);//增强for循环
    23     }
    24 }

      还有就是只要实现Iterable<E>接口的都可用增强for循环进行迭代,例如,ArrayList<E>,HashSet<E>等,

    需要注意的是Map<K,V>不能直接用增强for循环,因为Map家族并没有实现Iterable<E>接口。

    View Code
     1 import java.util.ArrayList;
     2 import java.util.Iterator;
     3 
     4 public class ForEach {
     5 
     6     /**
     7      * @author yokoboy
     8      *  2012年7月24日
     9      */
    10     public static void f1(ArrayList a) {
    11         for (Iterator it = a.iterator(); it.hasNext();) {
    12             System.out.println(it.next());
    13         }
    14     }
    15 
    16     public static void f2(ArrayList a) {
    17         //这里ArrayList没用泛型,所以不知道里面存的是什么对象,只能用Object来接
    18         for (Object s : a) {
    19             System.out.println((String) s);//强制类型转换成String,用泛型就不用这样了
    20         }
    21     }
    22 
    23     public static void main(String[] args) {
    24         ArrayList al = new ArrayList();
    25         al.add("one");
    26         al.add("two");
    27         al.add("three");
    28         f1(al);//传统for循环
    29         f2(al);//增强for循环
    30     }
    31 }

      下面介绍,Map怎样用增强for循环。

    View Code
     1 import java.util.HashMap;
     2 import java.util.Map;
     3 import java.util.Set;
     4 
     5 public class ForEach {
     6 
     7     /**
     8      * @author yokoboy
     9      *  2012年7月24日
    10      */
    11     public static void f1(Map<String, String> a) {
    12         Set<String> ss = a.keySet();
    13         for (String s : ss) {
    14             System.out.println(s + "::" + a.get(s));
    15         }
    16     }
    17 
    18     public static void f2(Map<String, String> a) {
    19         Set<Map.Entry<String, String>> ss = a.entrySet();
    20         for (Map.Entry<String, String> s : ss) {
    21             System.out.println(s.getKey() + "::" + s.getValue());
    22         }
    23     }
    24 
    25     public static void main(String[] args) {
    26         Map<String, String> al = new HashMap<String, String>();
    27         al.put("one", "haha");
    28         al.put("two", "hehe");
    29         al.put("three", "heihei");
    30         f1(al);//传统for循环
    31         f2(al);//增强for循环
    32     }
    33 }

    鸣谢:毕向东老师,带我走进了java的世界。 O(∩_∩)O~

    转载请注明出处:

    博客园_yokoboy

    http://www.cnblogs.com/yokoboy/archive/2012/07/24/2607425.html

     

  • 相关阅读:
    CentOS7配置本地yum源和在线yum源
    Centos7中安装samba服务器
    phpmydmain登录问题
    java实现简单的加法器
    我的偶像 凯文 米特尼克 简介
    安全好的地方分享
    a标签
    Vmware虚拟机 的工作模式
    java面板
    java的套接字实现远程连接
  • 原文地址:https://www.cnblogs.com/yokoboy/p/2607425.html
Copyright © 2011-2022 走看看