java如何在HashMap中获取特定值的键?
Possible Duplicate:
Java Hashmap: How to get key from value?
我有一个哈希图
private static HashMap<ObjectClass, UUID> projectileSet = new HashMap<ObjectClass, UUID>();
还有一个未完成的方法,我想返回与UUID对应的ObjectClass
public static LegendaryItem getClass(UUID uniqueId) {
return projectileSet.getKey(uniqueId);
}
# 1 楼答案
要获得像
getKey
这样的方法,需要一个双向哈希映射,它支持从值到键的查找,如Does Java have a HashMap with reverse lookup?中所述。apachecommons(BiDiMap)或番石榴(BiMap)似乎提供了此功能或者,您可以使用Amith提出的迭代方法
# 2 楼答案
亲爱的朋友,您的代码中有一个问题。 当你有唯一的ID作为你的值时,你可以使用这个ID作为hashmap键,你不需要做任何复杂的编码。只要这样做:
然后:
# 3 楼答案
您无法在标准java映射中直接获得该特性。因为java映射不支持反向视图,所以从给定的值获取密钥。为此,最好使用双向映射实现。其中一个例子:BiMap
# 4 楼答案
通过使用
keySet()
,您可以。。。它将以集合的形式返回所有键# 5 楼答案
您可以使用“KeySet()”方法从HashMap返回密钥
迭代ObjSet并获取每个键