java怎么获取map的key

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么获取map的key相关的知识,希望对你有一定的参考价值。

java 获取map中所有的key和value值

java.util.Iterator 对 collection 进行迭代的迭代器。

java.util.Iterator it = map.entrySet().iterator();
while(it.hasNext())
java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
entry.getKey() //返回对应的键
entry.getValue() //返回对应的值


以前遍历Map key-value比较习惯的方式是先获取Map中的所有key值,
然后根据key,依次从Map中去数据,基本方式如下:

Map<String,String> testData = new HashMap<String, String>();

Set<String> keys = testData.keySet();
for(String key :keys)
System.out.println(key+" "+testData.get(key));


上述其中是第一种方法,原来一直用上述方法主要是自己有点懒,有了一种方法后就觉得够用的了,今天看源码,发现还Map接口中还有一个Entry<K,V>的接口,对应的还有一个 Set<Map.Entry<K, V>> entrySet();方法。
也就是说其实Map中的每条key-value数据对应着一个Entry,这样的话遍历Map其实就是要取出每个Entry,也就有了第二种遍历方法:

Set<Entry<String, String>> entries = testData.entrySet();
for (Entry<String, String> entry : entries)
System.out.println(entry.getKey()+":"+entry.getValue());


当少量的数据时,上述两种方法的效率是差不多的,当数据比较多时,第二种还是要比第一种快。

当然上述说的两种遍历针对的情况是遍历出key-value,如果是只想遍历key或value,大可不必用以上的方法了,Map中提供了Set<K> keySet()和Collection<V> values()。
参考技术A map迭代,需要使用map的key,问度娘后记录使用方法如下,希望更多人能学习到.

public class MyUtil1
public static void
iteratorMap1(Map m)
Set
set=m.keySet();//用接口实例接口
Iterator iter =
set.iterator();
while (iter.hasNext())
//遍历二次,速度慢
String
k=(String)iter.next();

System.out.println(k +"="+ m.get(k));
//System.out.println(iter.next()+"="+
m.get(iter.next()));
//因为指针判断下一个有没有值 iter.next是当前对象
但是 m.get(iter.next())是下一个值

public static void iteratorMap(Map m)
Iterator
i=m.entrySet().iterator();

while(i.hasNext())//只遍历一次,速度快
Map.Entry
e=(Map.Entry)i.next();

System.out.println(e.getKey()+"="+e.getValue());

//System.out.println(e.setValue(""));//返回value的值

本回答被提问者采纳

java中map怎么输出!

1、map.entrySet()获取键值对列表,即a=1;
2、map.values()获取value集合
3、map.keySet()获取key集合;并通过key获取对应value的值

public static void main(String[] args) 
java.util.Map<String, String> map = new HashMap<>();
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
map.put("d", "4");
map.put("e", "5");
map.put("f", "6");
for (Entry<String, String> s : map.entrySet()) 
System.out.println("键值对:" + s);

for (String s : map.values()) 
System.out.println("values:" + s);

for (String s : map.keySet()) 
System.out.println("key:" + s);
System.out.println("values:" + map.get(s));


System.out.println(map.getOrDefault("g", "28342849284923"));

参考技术A // 将Map的数据输出到控制台(未排序)
for(Map.Entry entry: myMap.entrySet())
   System.out.println(entry.getKey()+" = "+entry.getValue());


// 将Map的数据输出到控制台(按Key排序)
假设myMap的定义为Map<String, String> 
List<String> keys = new ArrrayList<String>(myMap.keySet());
Collections.sort(keys);
for(String key : keys)
   System.out.println(key  + " = " + myMap.get(key));

参考技术B import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import org.apache.commons.collections.map.HashedMap;

public class TestMap
public static void main(String[] args)
Map<String, String> map = new HashedMap();
map.put("1", "x");
map.put("2", "2x");
map.put("3", "3x");
//要是只要哪一条那么直接map.get("1");即可
Set<String> key = map.keySet();
for (Iterator<String> it = key.iterator(); it.hasNext();)
String s = it.next();
System.out.println(s+":"+map.get(s));//这里的s就是map中的key,map.get(s)就是key对应的value。




本回答被提问者采纳
参考技术C Map<String,String> map = new HashMap<String, String>();
map.put("一", "北京");
map.put("二", "上海");
map.put("三", "南京");
//------------1---------------------------------
for(Map.Entry<String, String> temp:map.entrySet())
System.out.println(temp.getKey()+","+temp.getValue());

//------------2---------------------------------
Set<String> sets=map.keySet();
for(Iterator<String> it = sets.iterator();it.hasNext();)
System.out.println(it.next());

//------------3-------------------------------------
for(String key:map.keySet())
System.out.println(key+","+map.get(key));
参考技术D import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class Test

public static void main(String[] args)
Map<String, String> map = new HashMap<String, String>();
map.put("A", "a");
map.put("B", "b");
Set<String> keys = map.keySet();
Iterator<String> it = keys.iterator();
while(it.hasNext())
String key = it.next();
System.out.println(key + "-->" + map.get(key));




以上是关于java怎么获取map的key的主要内容,如果未能解决你的问题,请参考以下文章

java怎么通过key值获取value值

EL表达式怎么获取Map的动态key?

EL表达式怎么获取Map的动态key?

java怎么判断map集合的值是多少?

java中的map怎么根据key值修改value值?

java 怎么样获取Map中第几个键值对