【问题标题】:A map with two keys [duplicate]有两个键的地图[重复]
【发布时间】:2011-11-26 02:36:18
【问题描述】:
【问题讨论】:
标签:
java
string
map
key
concat
【解决方案1】:
好吧,你可以使用Map<String, Map<String, YourEnum>>。
我们经常使用它,因此制作了自己的 Map 实现,它提供两个键并在内部使用 map-of-maps 方法。
【解决方案2】:
你可以有一张地图,即
Map.get("attr1").get("attr2");
或者你可以用equals方法定义一个对象,即
Map.get(new MyObject("attr1", "attr2"));
【解决方案4】:
为什么不创建一个包含这两个键的类并将其用作映射键?
例如:
public class BiKey implements comparable<BiKey>
{
private String key1;
private String key2;
// getters and setters
// equals and hash code.
// implement comparable.
}
Map <BiKey, Blammy> blammyMap; // Blammy is the value type.
【解决方案5】:
与 Thomas 的方法类似,我们(在我的工作中)有“维度”地图类,它们是几个地图的简单包装器。
public class MultiKeyMap {
private HashMap<keyOne, Object> keyOneToObjectMap;
private HashMap<keyTwo, Object> keyTwoToObjectMap;
...etc
}
保持所有地图彼此同步非常容易,并且无需大量潜在的复杂代码即可进行相当快速的搜索。 (但是,这是以增加内存使用为代价的)