可能重复:
Java Hashmap:如何从值获取密钥?
我正在寻找一个Java数据结构(某种地图),我可以在其中对Keys和Values执行查找.例如,假设我在一组字符串和整数之间有一对一的映射.调用此对象映射器.我希望能够执行以下操作:
mapper.getAssociated(value):这将返回密钥mapper.getAssociated(key):这将返回值可能重复:
Java Hashmap:如何从值获取密钥?
我知道HashMap包含一个特定的整数变量作为值.如何获得与此值相关联的密钥?
有标准结构Map<k1,k2>吗?这意味着我可以通过"键"获得"值",通过"值"获得"键".换句话说,值和键都是彼此连接的集合.
我遇到的情况是,我将根据价值改变密钥HashMap.我HashMap是:
HashMap<Key, Path>
Run Code Online (Sandbox Code Playgroud)
最初我正在Key为每个目录创建s Path并将这些条目放入其中HashMap.当进行处理,我将采取Path基于Key从HashMap并处理它们.在某些情况下,我将重新计算Key了一些Path,想取代旧Key与新的Key针对Path.我希望为唯一路径保留唯一的密钥,并使用其中一个更新HashMap中的Entry.所以我想执行HashMap的反向更新Key.什么是最好的技术?
提前致谢.
private static HashMap<Script, String> scripts = new HashMap<>();
public Script getScriptByName(String name) {
for (String s : scripts.values()) {
if (s.equals(name)) {
...
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
鉴于此代码,我如何获取特定值的键?
下面是我的代码...
Map<Integer, String> MyType = sessionInfo.getType();
//{2=somename}
Run Code Online (Sandbox Code Playgroud)
我试图从值中获取键...不运行任何循环....有可能吗?
MyType.get("somename") // should output 2`
Run Code Online (Sandbox Code Playgroud) 我有一个设置,我的每个“人”都映射到一个特定的“房间”。
但是,多人可以映射到同一个房间。
如果看到现有人员,则应将其房间更新为新值。
所以这是传统的用例 Map<Person, Room>.put(Person, Room)
但是,查找始终是“这个房间里有哪些人?”
Set<People> get(Room q){}
我显然可以制作自己的数据结构或简单地迭代键值对;但是其中一个 Java 集合库是否具有良好的结构来支持我需要的参照完整性和查找?