大家好,Java Map对象遍历的4种技巧详解相信很多的网友都不是很明白,包括也是一样,不过没有关系,接下来就来为大家分享关于Java Map对象遍历的4种技巧详解和的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
How to Iterate Over a Map in Javajava中遍历Map的方法有很多种。让我们看一下最常见的方法及其优缺点。
由于Java中的所有映射都实现了Map接口,因此以下方法适用于任何映射实现(HashMap、TreeMap、LinkedHashMap、Hashtable等)
方法一 在for-each循环中使用entries来遍历这是最常见、在大多数情况下也是最理想的穿越方式。当同时需要键和值时使用。
Mapmap=new HashMap();
for (Map.Entryentry : map.entrySet()) {
System.out.println("Key="+entry.getKey()+",Value="+entry.getValue());
}注意:for-each 循环是在Java 5 中引入的,因此该方法只能在Java 5 或更高版本中使用。如果迭代空映射对象,for-each 循环将抛出NullPointerException,因此在迭代之前应始终检查空引用。
方法二 在for-each循环中遍历keys或values。如果只需要map中的key或者value,可以通过keySet或者values来遍历,而不是使用entrySet。
Mapmap=new HashMap();
//遍历map中的key
for (整数键: map.keySet()) {
System.out.println("Key=" + key);
}
//遍历map中的值
for (整数值: map.values()) {
System.out.println("值=" + 值);
}这种方法的性能比entrySet遍历稍好(快10%),而且代码更干净。
方法三使用Iterator遍历使用仿制药:
Mapmap=new HashMap();
Iteratorentries=map.entrySet().iterator();
while (entries.hasNext()) {
Map.Entryentry=Entry.next();
System.out.println("Key="+entry.getKey()+",Value="+entry.getValue());
不使用泛型:
映射map=new HashMap();
迭代器条目=map.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry 条目=(Map.Entry)条目.next();
整数键=(整数)entry.getKey();
整数值=(整数)entry.getValue();
System.out.println("键=" + 键+ ", 值=" + 值);
}您还可以对键集和值应用相同的方法。
这种方法看似多余,但也有其优点。首先,这是旧版本Java 中遍历地图的唯一方法。另一个好处是你可以在遍历时调用iterator.remove() 来删除条目,而其他两种方法则不能。根据javadoc,如果您尝试在for-each 遍历中使用此方法,结果将是不可预测的。
从性能角度来看,该方法与for-each遍历(即方法2)的性能类似。
方法四、通过键找值遍历(效率低)Mapmap=new HashMap();
for (整数键: map.keySet()) {
整数值=map.get(key);
System.out.println("键=" + 键+ ", 值=" + 值);
}作为方法一的替代方案,这段代码看起来更干净;但实际上它非常慢并且效率低下。因为从key中获取值是一个耗时的操作(与方法1相比,该方法在不同的Map实现中慢了20%到200%)。如果您安装了FindBugs,它会检查并警告您低效的遍历。所以尽量避免使用它。
总结
【Java Map对象遍历的4种技巧详解】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
想了解下Java Map里元素的操作技巧。
有6位网友表示赞同!
最近在项目中用到Map,学习这几种遍历方法挺有用!
有17位网友表示赞同!
我一直觉得java的集合操作有点绕!
有18位网友表示赞同!
分享文章内容真是太棒了,方便我学习新知识!
有14位网友表示赞同!
想看看不同遍历方法效率区别大不大?
有11位网友表示赞同!
这4种方法都挺实用的呢,我会尝试应用到我的项目中!
有10位网友表示赞同!
了解Map的遍历方法对写代码很有帮助。
有8位网友表示赞同!
以后遇到需要遍历Map的时候可以直接参考这篇教程了。
有16位网友表示赞同!
Java学习之路漫长,多积累经验和技巧才是关键!
有20位网友表示赞同!
这篇文章很实用,讲解清楚易懂!
有5位网友表示赞同!
要掌握java编程语言需要勤加练习的哦!
有17位网友表示赞同!
这几种方法的应用场景有什么区别吗?
有19位网友表示赞同!
希望以后还能看到更多关于Java的数据结构和算法的文章!
有15位网友表示赞同!
Map这个数据结构还是很常见的,熟练使用它可以提高编程效率。
有6位网友表示赞同!
学习新的知识总是让人兴奋!
有9位网友表示赞同!
Java编程真是一门艺术!
有10位网友表示赞同!
这篇文章让我对Map的遍历方法有了更深的理解
有15位网友表示赞同!
谢谢作者的分享,文章写的真好。
有20位网友表示赞同!
Java编程技巧还是要不断积累和实践!
有19位网友表示赞同!
这篇文章给了我很大的启发。
有16位网友表示赞同!