欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解JAVA里面获取map的key和value的方法

程序员文章站 2022-07-22 09:34:38
获取map的key和value的方法分为两种形式: map.keyset():先获取map的key,然后根据key获取对应的value; map..entr...

获取map的key和value的方法分为两种形式:

  • map.keyset():先获取map的key,然后根据key获取对应的value;
  • map..entryset():同时查询map的key和value,只需要查询一次。

同时遍历key和value时,keyset与entryset方法的性能差异取决于key的具体情况,如复杂度(复杂对象)、离散度、冲突率等。换言之,取决于hashmap查找value的开销。entryset一次性取出所有key和value的操作是有性能开销的,当这个损失小于hashmap查找value的开销时,entryset的性能优势就会体现出来。

只遍历key时,keyset方法更为合适,因为entryset将无用的value也给取出来了,浪费了性能和空间。

只遍历value时,使用vlaues方法是最佳选择,entryset会略好于keyset方法。

通过map.keyset() 方法

方法一:通过得到key的值,然后获取value

for(string key : map.keyset()){
  string value = map.get(key);
  system.out.println(key+" "+value);
}

方法二:使用迭代器,获取key

iterator<string> iter = map.keyset().iterator();
 while(iter.hasnext()){
  string key=iter.next();
  string value = map.get(key);
  system.out.println(key+" "+value);
 }

通过map.entryset()方法

方法一:循环map里面的每一对键值对,然后获取key和value

for(entry<string, string> vo : map.entryset()){
  vo.getkey();
  vo.getvalue();
  system.out.println(vo.getkey()+" "+vo.getvalue());
 }

方法二:使用迭代器,获取key

iterator<entry<string,string>> iter = map.entryset().iterator();
 while(iter.hasnext()){
  entry<string,string> entry = iter.next();
  string key = entry.getkey();
  string value = entry.getvalue();
  system.out.println(key+" "+value);
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。