java笔记java中的Map.Entry和Map.entrySet()方法的使用
Posted 棉花糖灬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java笔记java中的Map.Entry和Map.entrySet()方法的使用相关的知识,希望对你有一定的参考价值。
Map.entrySet()方法返回的是一个Set<Map.Entry<K,V>>类型的值,首先该返回值是一个集合Set,集合中的元素是Map.Entry<K,V>类型的,每个Map.Entry可以看作是一个键值对对象,可以通过getKey()和getValue()方法分别获取其键和值。
Map.entrySet()方法主要用在对Map的键和值的遍历上,你可能会问了,既然已经有了更简便的方法去访问Map的键和值,为什么又要弄一个相对复杂的东西呢?答案就是速度更快,特别是在对大容量的Map进行键值对的遍历时。先看下面例子中的两种遍历方式。
package ecnu.cn;
import java.util.HashMap;
import java.util.Map;
public class MyTest {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(1, "value1");
map.put(2, "value2");
map.put(3, "value3");
map.put(4, "value4");
map.put(5, "value5");
for (Integer key : map.keySet()) {
System.out.println("key: " + key + " value: " + map.get(key));
}
System.out.println();
for(Map.Entry<Integer,String> entry:map.entrySet()){
System.out.println("key: "+entry.getKey()+" value: "+entry.getValue());
}
}
}
那为什么第一种常用的遍历方式会更慢呢?我的理解是:该种方式是先取出所有键的集合,然后拿着每个键再去Map中查找对应的值。而第二种方法是直接遍历每个键值对,直接用getKey()和getValue()方法分别获取其键和值即可。所以很明显第一种方式是多了一步的,也就更慢一些了。
以上是关于java笔记java中的Map.Entry和Map.entrySet()方法的使用的主要内容,如果未能解决你的问题,请参考以下文章