指点成金-最美分享吧

登录

java怎么获取map的key

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了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 testData = new HashMap();

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


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

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


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

当然上述说的两种遍历针对的情况是遍历出key-value,如果是只想遍历key或value,大可不必用以上的方法了,Map中提供了Set keySet()和Collection 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 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 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 
List keys = new ArrrayList(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 map = new HashedMap();
map.put("1", "x");
map.put("2", "2x");
map.put("3", "3x");
//要是只要哪一条那么直接map.get("1");即可
Set key = map.keySet();
for (Iterator 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 map = new HashMap();
map.put("一", "北京");
map.put("二", "上海");
map.put("三", "南京");
//------------1---------------------------------
for(Map.Entry temp:map.entrySet())
System.out.println(temp.getKey()+","+temp.getValue());

//------------2---------------------------------
Set sets=map.keySet();
for(Iterator 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 map = new HashMap();
map.put("A", "a");
map.put("B", "b");
Set keys = map.keySet();
Iterator it = keys.iterator();
while(it.hasNext())
String key = it.next();
System.out.println(key + "-->" + map.get(key));




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