想象一下包含K1,K2和D列的表格。我可能需要按键K1或K2或两者搜索数据。除了创建几个保留引用的地图之外,Java中是否有任何“标准”解决方案?
答案 0 :(得分:1)
考虑使用番石榴Table。
的示例Table<Vertex, Vertex, Double> weightedGraph = HashTable.create();
weightedGraph.put(v1, v2, 4);
weightedGraph.put(v1, v3, 20);
weightedGraph.put(v2, v3, 5);
weightedGraph.row(v1); // returns a Map mapping v2 to 4, v3 to 20
weightedGraph.column(v3); // returns a Map mapping v1 to 20, v2 to 5
答案 1 :(得分:0)
如果你只想搜索(k1,k2)元组,我会建议MultiKeyMap
,或者更可能的是,一个包装器对象进入标准Map
。但是如果你想用两者,或者一个或另一个进行搜索 - 听起来像嵌入式SQL引擎可能会更好。
编辑:取决于您的数据大小,您是否还需要(k1,k2,k3)查找,您需要多少这样的结构(SQL引擎相对较重), Mairbek Khadikov对番石榴桌的回答可能会更好。
答案 2 :(得分:0)
如果您希望按一系列键搜索数据,则可以使用navigable map。
看看这段代码:
NavigableMap<String, String> orig = new TreeMap();
orig.put("1", "A");
orig.add("2", "B");
orig.add("3", "C");
orig.add("4", "D");
orig.add("5", "E");
//this submap will now contain "C", "C"
SortedMap submap = orig.subMap("2", "4");
答案 3 :(得分:0)
我会将Map包装在一个对象中,并提供一些使用两个键搜索数据的方法。之后,您可以简单地交叉2个结果集并返回它们。很好很简单:)。