(转)关于HashMap根据Value获取Key
来源:互联网 发布:网易邮箱数据库在线查 编辑:程序博客网 时间:2024/05/22 01:36
原地址:http://www.cnblogs.com/DreamDrive/p/4673183.html
关于我对java中集合的总结有如下三篇:
关于JDK中的集合总结(一)
关于JDK中的集合总结(二)
关于JDK中的集合总结(三)
关于数组集合之间的转换
Map中是一个key有且只有一个value.
但是一个value可以对应多个key值.
一般都是通过key,然后map.get(key)获得到value.
如果想要反向想通过value获得key的值,提供一下两种方法:
方法一:
package cn.itcast.mapgetkey;import java.util.ArrayList;import java.util.HashMap;import java.util.List;public class HashMapDemo { //根据value值获取到对应的一个key值 public static String getKey(HashMap<String,String> map,String value){ String key = null; //Map,HashMap并没有实现Iteratable接口.不能用于增强for循环. for(String getKey: map.keySet()){ if(map.get(getKey).equals(value)){ key = getKey; } } return key; //这个key肯定是最后一个满足该条件的key. } //根据value值获取到对应的所有的key值 public static List<String> getKeyList(HashMap<String,String> map,String value){ List<String> keyList = new ArrayList(); for(String getKey: map.keySet()){ if(map.get(getKey).equals(value)){ keyList.add(getKey); } } return keyList; } public static void main(String[] args) { HashMap<String,String> map = new HashMap(); map.put("CHINA", "中国"); map.put("CN", "中国"); map.put("AM", "美国"); //获取一个Key System.out.println("通过value获取Key:"+getKey(map,"中国"));//输出"CN" System.out.println("通过value获取Key:"+getKey(map,"美国"));//输出"AM" //获得所有的key值 System.out.println("通过value获取所有的key值:"+getKeyList(map,"中国"));//输出"[CHINA, CN]" }}
方法二:
package cn.itcast.mapgetkey2;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.Set;public class MapValueGetKey { HashMap<String, String> map = null; public MapValueGetKey(HashMap<String, String> map) { this.map = map; } public static void main(String[] args) { HashMap<String, String> map = new HashMap<String, String>(); map.put("1", "a"); map.put("2", "b"); map.put("3", "c"); map.put("4", "c"); map.put("5", "e"); MapValueGetKey mapValueGetKey = new MapValueGetKey(map); System.out.println(mapValueGetKey.getKey("c"));//输出[3, 4] } private ArrayList<String> getKey(String value) { ArrayList<String> keyList = new ArrayList<String>(); String key = null; Set<Entry<String, String>> set = map.entrySet();// entrySet()方法就是把map中的每个键值对变成对应成Set集合中的一个对象. // set对象中的内容如下:[3=c, 2=b, 1=a, 5=e, 4=c] Iterator it = set.iterator(); while (it.hasNext()) { Map.Entry<String, String> entry = (Map.Entry<String, String>) it.next(); // entry中的内容就是set集合中的每个对象(map集合中的一个键值对)3=c.... // Map.Entry就是一种类型,专值map中的一个键值对组成的对象. if (entry.getValue().equals(value)){ key = (String) entry.getKey(); keyList.add(key); } } return keyList; }}
阅读全文
0 0
- (转)关于HashMap根据Value获取Key
- 关于HashMap根据Value获取Key
- HashMap 根据Value获取Key
- HashMap根据value获取key
- Java 关于HashMap根据value反向获取key值
- Java 关于HashMap根据value反向获取key值
- Map 根据value 获取key
- hashMap分别获取所有key和value
- java hashMap 查询效率非常高,看一下根据key找value,根据value找key
- 在map中根据value获取key
- 分别根据key和value对HashMap进行排序
- HashMap遍历 key value
- HashMap根据value排序
- hashmap根据value排序
- HashMap 根据key排序
- 关于hashMap的key和value的理解
- 根据值(value)获取泛型Dictionary的键(key)
- 根据索引获取Dictionary的key和value值
- Effective C++ — 资源管理
- 一.POI各个jar包用途,及处理Excel需要jar包
- java多态分析
- 3D图形渲染管线
- 使用 Struts 2 开发 RESTful 服务
- (转)关于HashMap根据Value获取Key
- android 动态设置View 高和宽
- Excel文件工具类
- 期间任务
- 海量数据处理算法—Bloom Filter
- 浅谈java缓存
- Windows下安装TensorFlow
- Java面试题全集(上)
- 【已解决】【Appium】请教大神,Appium配置正常,但是运行脚本异常停止,提示[UiAutomator] Moving to state 'stopped'