根据map的key值获取value值 有多个key怎么获取多个value值

根据map的key值获取value值 有多个key怎么获取多个value值,第1张

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

}

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;

hm已是一个HashMap的引用。

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

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

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

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

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

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

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

{

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

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

}

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

mapput("test1", "aaaa");

mapput("test2", "bbbb");

mapput("test3", "cccc");

for (String key : mapkeySet()) {//获取所有key

Systemoutprintln(key);

}

for (String value : mapvalues()) { //获取所有value

Systemoutprintln(value);

}

hashmap中key值是唯一的,但value是不唯一的 所以是没有办法通过像get(key)取value值一样直接取key的 如果你一定要这么做的话也可以,但是要注意同一个value可能返回多个key哦 写个例子给你:@Testpublic void test() { Map

Set set = hmentrySet() ;

javautilIterator it = hmentrySet()iterator();

while(ithasNext()){

javautilMapEntry entry = (javautilMapEntry)itnext();

Object key = entrygetKey(); // 返回与此项对应的键,如果是一个类则强制转型,而且这个类必须有toString方法,或者你自己写的输出两个字符串的方法

Object value = entrygetValue(); // 返回与此项对应的值

Systemoutprintln(key); // 在这里输出

Systemoutprintln(value);

存在对应的key却获取不到的原因有

可以如果是对象的话,记得查看对象hash方法是否满足自己业务,因为key是取对象hash值来进行存储的。

key的开始跟结束存在空格

key的开头为\uFEFF 字符,正常是看不出来的,debug模式看key字符串的value才能看出来 :

这个\uFEFF到底是个啥???叫做BOM。

BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码,但它对于文件的读者来说是不可见字符。

BOM定义:>

Map<User,Socket> socketMap = new HashMap<User,Socket>();

socketMapput(user1,socket1);

socketMapput(user2,socket2);

for (Socket socket: socketMapvalues()) {

}

以上就是关于根据map的key值获取value值 有多个key怎么获取多个value值全部的内容,包括:根据map的key值获取value值 有多个key怎么获取多个value值、java hashmap 得到指定key的value、如何直接获取map中key的value等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存