MultiKeyMap get方法

jos*_*pos 6 java collections hashmap

我想使用Apache Collection中的MultiKeyMap,因为我需要一个带有两个键和一个值的HashMap.要放置元素我这样做:

private MultiKeyMap multiKey = new MultiKeyMap();
multiKey.put("key1.1", "key2.1", "value1");
Run Code Online (Sandbox Code Playgroud)

对于get元素,我这样做:

String s = multiKey.get("key1.1");
Run Code Online (Sandbox Code Playgroud)

但是String的结果是空的 ......如果我传递了两个键,就像那样:

String s = multiKey.get("key1.1", "key2.1");
Run Code Online (Sandbox Code Playgroud)

String s的值为value1 ...

当我传递两个密钥中的一个时,如何扩展MultiKeyMap以获得正确的值?

Pet*_*rey 5

如果你只需要一个键来获取一个值,你就有一个普通的旧 HashMap。

private Map<String, String> map = new HashMap<>();

map.put("key1.1", "value1");
map.put("key2.1", "value1");
Run Code Online (Sandbox Code Playgroud)

对于 get 元素,您可以这样做:

String s = map.get("key1.1"); // s == "value1"
Run Code Online (Sandbox Code Playgroud)

当必须提供两个键时,需要 MultiKeyMap。


wes*_*erA 5

如果使用两个键指定值,则需要两个键才能将其取回.散列函数不是为了返回仅与两个键中的一个键相关联的所有可能值而设计的.您可能需要找到不同的数据结构才能执行此操作.