问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java Map 根据Map的值(value)取键(key)

发布网友 发布时间:2022-05-03 08:47

我来回答

5个回答

热心网友 时间:2022-04-23 00:33

java根据Map的值(value)取键(key) 的实现方法有4种,分别为:

(1)使用for循环遍历

(2)使用Iterator迭代器

(3)使用KeySet迭代

(4)使用EnterySet迭代

下面为以上4种方法具体实现的代码:

1、使用for循环遍历

public static Object getKey(HashMap<Object,Object> map, String v) {

String key = "";

for (Map.Entry<String, Object> m :map.entrySet())  {

if (m.getValue().equals(v)) {

key = m.getKey();

}}

return key;

}

2、使用Iterator迭代器

public static Object getKey(HashMap<Object,Object> map, String v) {

Set set = map.entrySet();

Iterator iterator=set.iterator();

String key = "";

while (iterator.hasNext()) {

Map.Entry<String, Object> enter = (Entry<String, Object>)

iterator.next();

if (enter.getValue().equals(v)) {

key = enter.getKey();

}}

return key;

}

3、使用KeySet迭代

public static Object getKey(HashMap<Object,Object> map, String v) {

Iterator<Object> it = map.keySet().iterator();

while (it.hasNext()) {

String key = it.next().toString();

if ((String) map.get(key).equals(v)) return key;

}

return null;

}

4、使用EnterySet迭代

public static Object getKey(HashMap<Object,Object> map, String v) {

String key = "";

Iterator it = map.entrySet().iterator();

while (it.hasNext()) {

Map.Entry entry = (Entry) it.next();

Object obj = entry.getValue();

if (obj != null && obj.equals(value)) {

key = (String) entry.getKey();

}}

return key;

}

扩展资料:

java获取map的key和value的方法:

(1) 通过map.keySet()方法,先获取map的key,然后根据key获取对应的value。

for(String key : map.keySet()){

String value = map.get(key);

System.out.println(key+"  "+value);

}

Iterator<String> iter = map.keySet().iterator();

while(iter.hasNext()){

String key=iter.next();

String value = map.get(key);

System.out.println(key+" "+value);

}

(2)通过map.entrySet()方法,循环map里面的每一对键值对,然后获取key和value。

for(Entry<String, String> vo : map.entrySet()) {

vo.getKey();

vo.getValue();

System.out.println(vo.getKey()+"  "+vo.getValue());

}

Iterator<Entry<String,String>> iter = map.entrySet().iterator();

while(iter.hasNext()){

Entry<String,String> entry = iter.next();

String key = entry.getKey();

String value = entry.getValue();

System.out.println(key+" "+value);

}

参考资料来源:JAVA官方文档-Map

热心网友 时间:2022-04-23 01:51

public static void main(String[] args) {
Map<String, Object> map = new LinkedHashMap<String, 
Object>();
map.put("username","zhaokuo");
map.put("password", "123456");
map.put("email", "zhaokuo719@163.com");
map.put("sex", "男");
//第一种 用for循环的方式
for (Map.Entry<String, Object> m :map.entrySet())  {
System.out.println(m.getKey()+"\t"+m.getValue());
}
//利用迭代 (Iterator)
Set set=map.entrySet();
Iterator iterator=set.iterator();
while(iterator.hasNext()){
Map.Entry<String, Object> enter=(Entry<String, Object>) 
iterator.next();
System.out.println(enter.getKey()+"\t"+enter.getValue());
}
//利用KeySet 迭代
Iterator it = map.keySet().iterator();
while(it.hasNext()){
String key;   
  String value;   
  key=it.next().toString();   
  value=(String) map.get(key);   
  System.out.println(key+"--"+value);   
}
//利用EnterySet迭代
Iterator i=map.entrySet().iterator();      
System.out.println( map.entrySet().size());   
String key;      
String value;   
while(i.hasNext()){   
    Map.Entry entry = (Map.Entry)i.next();      
    key=entry.getKey().toString();      
    value=entry.getValue().toString();      
    System.out.println(key+"===="+value);           
}  
System.out.println(getKeyByValue(map, "zhaokuo"));
}
public static String getKeyByValue(Map map, Object value) {
String keys="";
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Entry) it.next();
Object obj = entry.getValue();
if (obj != null && obj.equals(value)) {
keys=(String) entry.getKey();
}

}
return keys;
}

热心网友 时间:2022-04-23 03:26

java map可以直接去key 但是好像不能根据value 取相应的key,
如果value唯一可以设计一个函数取key值

热心网友 时间:2022-04-23 05:17

用 map.entrySet(),得到Set<Entry<String,
Object>>,遍历得到entry。entry.getKey是键,entry.getValue是值。如果某一个entry.getValue和你的值相等,你return entry.getKey就是你要的键。

热心网友 时间:2022-04-23 07:25

假设value的变量为value:
for(Map.Entry entry:map.entrySet()){
if(value.equals(entry.getValue())return entry.getKey();

}
return null;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
联想笔记本怎么连接wifi联想笔记本电脑连wifi的步骤 联想小新笔记本电脑如何连接wifi联想笔记本连接wifi步骤 联想电脑连接wifi教程lenovo电脑怎么连接wifi步骤 lenovo电脑wifi在哪里连接联想电脑在哪里连接wifi 联想台式电脑怎么连接无线上网联想电脑怎么连WiFi 联想电脑怎么连无线网lenovo电脑怎么连接wifi步骤 联想电脑怎么设置连接wifilenovo电脑怎么连接wifi步骤 祝福妹妹出国的句子 给在异乡打拼的朋友鼓励的句子通用四十二条 《鲁迅先生,我想对你说》的作文 急急急!!! 英语口语的重要方法key方法 15平米卫生间怎样装修效果图 为什么看好中国,在中国设立私募基金 农业银行卡在手机上可以开通网银吗? 在手机上能开通网银吗我是是农行 华为P40的外观值得期待吗? 农行的手机银行现在可以在网上银行开通吗? Cisco anyconnect :disconnect Cisco AnyConnect 无法连接到Internet怎么办? 怎么给女友戴脚链? 会计专业都有哪些职务 怎样给鹦鹉戴脚链??? 脚链戴法 怎样给鹦鹉上脚链 请问穿长筒袜如何戴脚链? 头发细卷干怎么办 电脑安装any connect要多少内存 全面住册制以后股票会当天买卖吗? 昨晚梦见很多大便,也有是自已解的!请问这个有代表什么的吗? 怎么回事?便秘,睡眠不好,做梦很多,女,吃什么中成药最好一种药。 卫生间装修效果图哪里有啊,要好看的?可以透漏下吗 14平米的商铺卫生间怎么装修更好 公共卫生间装修要点,公共卫生间装修效果图 阳光过猛的地方适合种一些什么植物 谁给我一篇《感动中国学生的一百个励志故事》? 近年来感动中国的少年故事... 50至60度高温天气能种什么植物 提供几个感动中国中刻苦学习的事例 薄荷可以在太阳下暴晒吗? 《感动中国学生的100个创新故事》读后感 幼儿手工 制作在线ppt课件用什么软件好? 电脑CPU-i5的什么型号是最新的 - 信息提示 李小璐换2件白衬衫配水洗牛仔,年近40岁看着像18岁小姑娘吗? 李小璐的穿搭究竟有哪些过人之处? 贾乃亮公开挽回李小璐,甜馨终于不用被大家“同情怜悯”了,对此你怎么看? 五位辣妈同穿露脐装,佟丽娅baby秒杀杨幂小肥肉,你认为谁最好看? 毕业论文开题报告中的技术路线怎么写 对于孩子们得手工课,家长们是不是一样苦恼 荣耀手表怎样切换健康码?