在容器中使用增强的for循环,简洁大气,结构清晰

    技术2025-06-14  39

    除了增强的for循环使代码简洁大气,结构清晰外,我们还可以看到对Map键值不同的取值方式的效率介绍。 在这儿也是对增强for循环的相见恨晚啊!

    之前的使用情况

    Java代码 package  map;    import  java.util.HashMap;  import  java.util.Iterator;  import  java.util.Map;  import  java.util.Set;    public  class  EntryOfMap {      /*       * Set<Map.Entry<K,V>>entrySet() 返回此映射中包含的映射关系的 set 视图。       *        */       public  static  void  main(String[] args) {          String str[] = "java java platform is is is is perfect" .split(" " );          statistics(str);      }        public  static  void  statistics(String str[]) {          Map<String, Integer> m = new  HashMap<String, Integer>();// 用HashMap,因为Hash的查找快           for  (int  i = 0 ; i < str.length; i++) {              Integer freq = m.get(str[i]);              m.put(str[i], freq == null  ? 1  : freq + 1 );          }          // 效率高            Set<Map.Entry<String, Integer>> set = m.entrySet();           Iterator<Map.Entry<String, Integer>> it = set.iterator();          // 下面这一句等价于上面的两句           // Iterator<Map.Entry<String, Integer>> it = m.entrySet().iterator();           while  (it.hasNext()) {              Map.Entry<String, Integer> me = it.next();              System.out.println(me.getKey() + " "  + me.getValue());// 直接获取键和值           }          // 效率低             Iterator<String> iter = m.keySet().iterator();            while  (iter.hasNext()) {              String s = iter.next();              System.out.println(s + " "  + m.get(s));          }        }  }  使用增强的for循环 Java代码 package  map;    import  java.util.HashMap;  import  java.util.Map;      public  class  EntryOfMap2{      /*       * 在EntryOfMap.java的基础上使用增强for循环对代码进行了优化       * 由于增强for循环的使用:这样的代码就非常的简洁了哦       */       public  static  void  main(String[] args) {          String str[] = "java java platform is is is is perfect" .split(" " );          statistics(str);      }        public  static  void  statistics(String str[]) {          Map<String, Integer> m = new  HashMap<String, Integer>();// 用HashMap,因为Hash的查找快           for  (int  i = 0 ; i < str.length; i++) {              Integer freq = m.get(str[i]);              m.put(str[i], freq == null  ? 1  : freq + 1 );          }          // 用Map.Entry效率高            for  (Map.Entry<String, Integer> me : m.entrySet())               System.out.println(me.getKey() + " "  + me.getValue());           // 通过键来取值效率低            for  (String s : m.keySet())               System.out.println(s + " "  + m.get(s));         }  }  也就是比较这两段代码 Java代码 1 .          // 效率高           Set<Map.Entry<String, Integer>> set = m.entrySet();          Iterator<Map.Entry<String, Integer>> it = set.iterator();          // 下面这一句等价于上面的两句           // Iterator<Map.Entry<String, Integer>> it = m.entrySet().iterator();           while  (it.hasNext()) {              Map.Entry<String, Integer> me = it.next();              System.out.println(me.getKey() + " "  + me.getValue());// 直接获取键和值           }          // 效率低           Iterator<String> iter = m.keySet().iterator();          while  (iter.hasNext()) {              String s = iter.next();              System.out.println(s + " "  + m.get(s));          }  ------------------这个比较式非常的明显啊---------------------------------2 .          // 用Map.Entry效率高           for  (Map.Entry<String, Integer> me : m.entrySet())              System.out.println(me.getKey() + " "  + me.getValue());          // 通过键来取值效率低           for  (String s : m.keySet())              System.out.println(s + " "  + m.get(s));  转自:http://ocaicai.javaeye.com/blog/794922
    最新回复(0)