在容器中使用增强的for循环,简洁大气,结构清晰
来源:互联网 发布:牛股王软件怎么样 编辑:程序博客网 时间:2024/04/27 14:50
除了增强的for循环使代码简洁大气,结构清晰外,我们还可以看到对Map键值不同的取值方式的效率介绍。
在这儿也是对增强for循环的相见恨晚啊!
之前的使用情况
- 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
- 在容器中使用增强的for循环,简洁大气,结构清晰
- 增强for循环的使用
- 使用增强的for循环
- [Java] 容器-03 增强的For循环 / Set 方法
- Java 5.0 中增强的for循环
- java中增强for循环的原理
- java中增强for循环的原理
- JDK5增强for循环的使用
- 增强for循环的理解与使用。
- 增强的for循环
- 增强的for循环
- Java_容器_Collection_增强for循环
- Java中增强for循环在一维数组和二维数组中的使用
- [收藏]用 for/in 在 Java 5.0 中增强循环
- 用for-in 在Java5.0中增强循环
- 用 for/in 在 Java 5.0 中增强循环
- 用 for/in 在 Java 5.0 中增强循环
- 用 for/in 在 Java 5.0 中增强循环
- [转]android 源码目录分析
- 设计模式之Factory
- 【转】Windows下基于ADS+J-Link 的ARM开发环境搭建
- C# FileSystemWatcher 组件应用
- NS2安装相关软件下载
- 在容器中使用增强的for循环,简洁大气,结构清晰
- 文件系统启动时无法挂载
- 稻草人
- AIX操作命令点滴(转帖)
- 这辈子我碌碌无为到头一定会遗憾这一生
- Mobile的SD卡升级系统之一:两种升级方式
- SQL Server数据库转换成oracle
- 什么是操作系统的模块?
- boost::bind,boost::mem_fn,std::mem_fun/mem_fun_ref 比较