专栏首页风吹杨柳Map根据值得到键

Map根据值得到键

有些人说  根据值得到键不适合,因为值可以是多种,键只能是唯一的,

也即是不同的键都指向一个值   

其实这些如果需求是允许的话,还是不考虑这个关系了

做法很简单:

	public String getKeyByValue(Map<String,String> map,String value){
		String key = null;
		Iterator it = map.entrySet().iterator();
		while(it.hasNext()){
			Map.Entry<String, String> entry = (Entry<String, String>) it.next();
			String obj = entry.getValue();
			if(obj!=null &&obj.equals(value)){
				key = entry.getKey();
				return key;
			}
		}
		return key;
	}

因为我的业务需求比较简单,直接从服务器中把返回的json数组转成了map   然后用的时候根据值找键,找到第一个就结束了,不用考虑其他的

//百度知道上有个人写的:

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;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • css3的一些属性--position

    wust小吴
  • SVN安装---本机安装---SVN仓库(2)

    wust小吴
  • Android通用生命周期

    wust小吴
  • 关于面试题:[1, 2, 3].map(parseInt)问题的剖析

    最近有小伙伴在公号中咨询了胡哥这道面试题,窃以为是比较有意思的一道面试题,于此分享给各位小伙伴。先把答案给了各位,和你理解的一样吗?!

    胡哥有话说
  • 手把手教你如何优雅的使用Aop记录带参数的复杂Web接口日志

    不久前,因为需求的原因,需要实现一个操作日志。几乎每一个接口被调用后,都要记录一条跟这个参数挂钩的特定的日志到数据库。举个例子,就比如禁言操作,日志中需要记录因...

    SH的全栈笔记
  • 小王,在 Java 中如何利用 redis 实现一个分布式锁服务呢???

    在现代的编程语言中,接触过多线程编程的程序员多多少少对锁有一定的了解。简单的说,多线程中的锁就是在多线程环境下,多个线程对共享资源进行修改的时候,保证共享资源一...

    趣学程序-shaofeer
  • 手把手教你实现一个基于 Java 的分布式锁服务

    编辑:业余草 来源:https://www.xttblog.com/?p=4994

    业余草
  • [静电干货时间] 如何创建一份优秀的UI作品集?

    静电说:一份优秀的UI作品集通常可以让你更快速的找到工作,因为对于面试官来说,首先拿到一份简历,它的视线便会在纸面上游走,寻找作品集链接。所以,对于作品集来说,...

    用户5009027
  • 全球十大最富有城市出炉:中国这三个上榜!

    IT派 - {技术青年圈} 持续关注互联网、大数据、人工智能领域 近日,财富研究机构New World Wealth发布了最新的财富研究报告,其揭露了全球最...

    IT派
  • 黑莓发布Enterprise SDK,可将黑莓安全信息技术植入iOS或者Android应用

    黑莓为自家的即时通讯软件BBM推出企业版软件开发工具包(Enterprise SDK),有了这个SDK,企业应用开发者挑选安全信息系统时有了新的选择,可以让开发...

    BestSDK

扫码关注云+社区

领取腾讯云代金券