Java 关于HashMap根据value反向获取key值
2017-06-18 00:03
375 查看
Map中是一个key有且只有一个value.
但是一个value可以对应多个key值.
一般都是通过key,然后map.get(key)获得到value.
如果想要反向通过value获得key的值,提供以下方法:
[java] view
plain copy
<span style="font-size:18px;">package com.jglz.qing.map;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapValueGetKeyDemo {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "A");
map.put("2", "A");
map.put("3", "B");
map.put("4", "A");
map.put("5", "A");
String value = "A";
ArrayList<String> arr = FromValueGetKey(map, value);
if (!arr.isEmpty()) {
for (int i = 0; i < arr.size(); i++) {
System.out.println(arr.get(i));
}
}
}
private static ArrayList<String> FromValueGetKey(Map<String, String> map,
String value) {
Set set = map.entrySet();
ArrayList<String> arr = new ArrayList<String>();
Iterator it = set.iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
if (entry.getValue().equals(value)) {
String s = (String) entry.getKey();
arr.add(s);
}
}
return arr;
}
}</span>
在控制台输出的结果显示:
1
2
4
5
但是一个value可以对应多个key值.
一般都是通过key,然后map.get(key)获得到value.
如果想要反向通过value获得key的值,提供以下方法:
[java] view
plain copy
<span style="font-size:18px;">package com.jglz.qing.map;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapValueGetKeyDemo {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "A");
map.put("2", "A");
map.put("3", "B");
map.put("4", "A");
map.put("5", "A");
String value = "A";
ArrayList<String> arr = FromValueGetKey(map, value);
if (!arr.isEmpty()) {
for (int i = 0; i < arr.size(); i++) {
System.out.println(arr.get(i));
}
}
}
private static ArrayList<String> FromValueGetKey(Map<String, String> map,
String value) {
Set set = map.entrySet();
ArrayList<String> arr = new ArrayList<String>();
Iterator it = set.iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
if (entry.getValue().equals(value)) {
String s = (String) entry.getKey();
arr.add(s);
}
}
return arr;
}
}</span>
在控制台输出的结果显示:
1
2
4
5
相关文章推荐
- 关于HashMap根据Value获取Key
- (转)关于HashMap根据Value获取Key
- 关于HashMap根据Value获取Key
- 关于HashMap根据Value获取Key
- Java对HashMap中的Entry实体根据Key或者Value进行排序
- HashMap 根据Value获取Key
- java获取配置文件及根据key获取配置文件中的value的工具类
- java hashMap 查询效率非常高,看一下根据key找value,根据value找key
- HashMap根据value获取key
- HashMap根据value获取key
- Java获取.properties配置文件某一项value根据key值
- Java中获取HashMap中所有的Key的值,获取所有的value的值
- 关于Map中key和Value的灵活获取(推荐给初学JAVA的受苦受难的兄弟姐妹们)
- java map遍历、排序,根据value获取key
- java 获取 Map中所有的 key 和 value 值
- Java中Map根据键(Key)或者值(Value)进行排序
- 根据值(value)获取泛型Dictionary的键(key)
- Java 根据 HashMap 的 value 进行排序
- android关于HashMap<String, Integer>取最大的value,并找出key。
- Hashtable and HashMap are two hash based collection in Java and used to store objects as key value p