Map 取相同值的key
public static List<Map.Entry<Object, Object>> getKeyBySameValue(Map map){
Map values = new HashMap();
List list;
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()) {
Object key = iterator.next();
Object value = map.get(key);
if (map.containsValue(value)) {
if (values.containsKey(value)) {
list = (List) values.get(value);
} else {
list = new ArrayList();
}
list.add(key);
values.put(value, list);
}
}
iterator = values.keySet().iterator();
Map<Object,Object> newMap = new HashMap<>();
while (iterator.hasNext()) {
Object value = iterator.next();
List result = (List) values.get(value);
if (result.size() > 1) {
System.out.println("value :" + value + " -> keys:"
+ result.toString());
}
newMap.put(value,result.toString());
}
List<Map.Entry<Object, Object>> returnList = new ArrayList<>(newMap.entrySet());
return returnList;
}