java中如何通过Map的key获得它的value

java中如何通过Map的key获得它的value,第1张

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

//获取key的集合

Set<String> keySet = mapskeySet();

//遍历key集合,获取value

for(String key : keySet) {

String value = mapsget(key);

}

使用jstl标签c:forEach

第一步:引入标签<%@ taglib prefix="c" uri=">

for(Iterator it=mapkeySet();ithasNext();) { Systemoutprintln(key+":"+itnext()); Systemoutprintln(value+":"+mapget(itnext() ) ); } 哥一向这么狠,呵呵~~~~

hm已是一个HashMap的引用

如果你知道当前的这个key,可以通过hmget(key)方法来获得value

获得key的方法hmkeySet();因为你不知道key是哪个其实该方法就是获得一个key的集合

具体可以结合以下例子看看,里面有个迭代器用于遍历的

Set s=hmkeySet();//通过keySet方法可获得所有key的集合,放在一个容器Set里面

Iterator it=siterator();//获得一个迭代器引用it,通过siterator方法好比使“指针”指向

//set里面的第一个元素的位置

while(ithasNext())//set里面如果有下一个

{

Integer key=itnext();//返回当前set中的这个元素(因为set中都是放的key,“指针”指向下一个

Systemoutprintln(hmget(key));//利用hmget(key)方法获得该key对应的value

}

举个例子:

Map<Integer, String> map = new HashMap<Integer, String>();

先拿所有的键:

Integer[] keys = mapkeySet()toArray(new Integer[0]);

然後随机一个键,找出该值:

Random random = new Random();

Integer randomKey = keys[randomnextInt(keyslength)];

String randomValue = mapget(randomKey);

//第一种:普遍使用,二次取值

Systemoutprintln("通过MapkeySet遍历key和value:");

for (String key : mapkeySet()) {

Systemoutprintln("key= "+ key + " and value= " + mapget(key));

}

//第二种

Systemoutprintln("通过MapentrySet使用iterator遍历key和value:");

Iterator<MapEntry<String, String>> it = mapentrySet()iterator();

while (ithasNext()) {

MapEntry<String, String> entry = itnext();

Systemoutprintln("key= " + entrygetKey() + " and value= " + entrygetValue());

}

java hashmap 得到指定key的value的方法:

private static ArrayList valueGetKey(Map map,String value) 

{

    Set set = mapentrySet();//新建一个不可重复的集合

    

    ArrayList arr = new ArrayList<>();//新建一个集合

    

    Iterator it = setiterator();//遍历的类

    while(ithasNext()) 

    {

      MapEntry entry = (MapEntry)itnext();//找到所有key-value对集合

      

      if(entrygetValue()equals(value)) //通过判断是否有该value值

      {

        

        int s = (int)entrygetKey();//取得key值

        

        arradd(s);

        

      }

    }

    return arr;

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

javautilIterator 对 collection 进行迭代的迭代器。

javautilIterator it = mapentrySet()iterator();

while(ithasNext()){

javautilMapEntry entry = (javautilMapEntry)itnext();

entrygetKey() //返回对应的键

entrygetValue() //返回对应的值

}

以前遍历Map key-value比较习惯的方式是先获取Map中的所有key值,

然后根据key,依次从Map中去数据,基本方式如下:

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

Set<String> keys = testDatakeySet();

for(String key :keys){

Systemoutprintln(key+" "+testDataget(key));

}

上述其中是第一种方法,原来一直用上述方法主要是自己有点懒,有了一种方法后就觉得够用的了,今天看源码,发现还Map接口中还有一个Entry<K,V>的接口,对应的还有一个 Set<MapEntry<K, V>> entrySet();方法。

也就是说其实Map中的每条key-value数据对应着一个Entry,这样的话遍历Map其实就是要取出每个Entry,也就有了第二种遍历方法:

Set<Entry<String, String>> entries = testDataentrySet();

for (Entry<String, String> entry : entries) {

Systemoutprintln(entrygetKey()+":"+entrygetValue());

}

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

当然上述说的两种遍历针对的情况是遍历出key-value,如果是只想遍历key或value,大可不必用以上的方法了,Map中提供了Set<K> keySet()和Collection<V> values()。

以上就是关于java中如何通过Map的key获得它的value全部的内容,包括:java中如何通过Map的key获得它的value、怎么在jsp页面获取每个Map中key所对应的value值得 size啊、我要取出map中所有的key或value,请用最简单、最准确的话概括,急!!!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9430534.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存