
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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)