Map遍历:

来源:互联网 发布:手机扫描软件 - 百度 编辑:程序博客网 时间:2024/05/24 01:43

转载
方法一 在for-each循环中使用entries来遍历(可取的遍历方式。在键值都需要时使用)
1. 列表内容

Map<Integer, Integer> map = new HashMap<Integer, Integer>();      for (Map.Entry<Integer, Integer> entry : map.entrySet()) {      System.out.println("Key = " + entry.getKey() + ", Value = " entry.getValue())  }  

注意:for-each循环在java 5中被引入所以该方法只能应用于java 5或更高的版本中。如果你遍历的是一个空的map对象,for-each循环将抛出NullPointerException,因此在遍历前你总是应该检查空引用;

方法二 在for-each循环中遍历keys或values。(主需要key或只需要value,该方法比entrySet遍历在性能上稍好(快了10%))

Map<Integer, Integer> map = new HashMap<Integer, Integer>();  //遍历map中的键  for (Integer key : map.keySet()) {      System.out.println("Key = " + key);  }  //遍历map中的值  for (Integer value : map.values()) {      System.out.println("Value = " + value);  }  

方法三使用Iterator遍历(使用map的迭代器,在老版本的jdk中使用

Map map = new HashMap();  Iterator entries = map.entrySet().iterator();  while (entries.hasNext()) {      Map.Entry entry = (Map.Entry) entries.next();      Integer key = (Integer)entry.getKey();      Integer value = (Integer)entry.getValue();      System.out.println("Key = " + key + ", Value = " + value);  }  

方法四、通过键找值遍历(效率低,咋一看会和方法二差不多,仔细瞧,这里面是用key获取value,达到同时得到key和value)

    Map<Integer, Integer> map = new HashMap<Integer, Integer>();      for (Integer key : map.keySet()) {          Integer value = map.get(key);          System.out.println("Key = " + key + ", Value = " + value);      }  

作为方法一的替代,这个代码看上去更加干净;但实际上它相当慢且无效率。因为从键取值是耗时的操作(与方法一相比,在不同的Map实现中该方法慢了20%~200%)。如果你安装了FindBugs,它会做出检查并警告你关于哪些是低效率的遍历。所以尽量避免使用。

总结

如果仅需要键(keys)或值(values)使用方法二。如果你使用的语言版本低于java 5,或是打算在遍历时删除entries,必须使用方法三。否则使用方法一(键值都要)。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 十六步图示 恰恰舞基本步教学十六步 十六步鬼步舞分解动作 单人舞十六步 正规十六步教学慢动作 教你慢慢学十6六步 正十六烷 十六番普吉岛 普吉岛旅游攻略十六番 十六醇 十四醇 十六铺码头 上海十六铺码头 十六铺游船码头 十六铺码头游船 时间表 十兵卫 十分位 一个两位小数精确到十分位后 十分位是什么 十分位是小数点后几位 十分满分的甜 爱你十分泪七分 十分爱 爱你十分泪十分 爱你十分泪七分 裘海正 爱你十分泪十分 素米阳光 长汀山歌十劝郎对十回妹 劝人不要离婚的十句话 十加一笔 十加两笔 百分之十加百分之十 十级伤残全部加起多少钱 十加一笔变成什么字 十加一笔是什么字 东盟十国为什么加广西 十代雅阁加92还是95 十以内连加连减混合题 十加两笔是什么字 虫加偏旁 虫字加偏旁 三点水加虫