Map<String, Map<String,String>> regMap = new HashMap<String, Map<String,String>>();
如何从regMap
检索内容?有没有可以存储三个相关内容的数据结构?
答案 0 :(得分:4)
...还是有任何数据结构,我可以存储三个相关的东西?
只需创建自己的课程。
public class Foo {
private final Bar thingOne;
private final Bar thingTwo;
private final Bar thingThree;
// ...
}
然后,如果需要,您可以将其存储在Collection
中。
注意:请不要将我的琐碎示例作为一个建议,您应该为字段foo1
,foo2
等命名。为他们指定有意义的名称,例如forename
,{ {1}}等等
答案 1 :(得分:1)
如果您"firstKey"
中确定 regMap
,请使用:
String value = regMap.get("firstKey").get("secondKey");
否则:
private String safelyGetString(String firstKey, String secondKey) {
Map<String,String> temp = regMap.get(firstKey);
return (temp == null ? null : temp.get(secondKey));
}
答案 2 :(得分:0)
一种方法可能是
Map<String,String> innerMap= regMap.get("string");
String value=null;
if(innerMap!=null)
value=innerMap.get("insidemap");
答案 3 :(得分:0)
当您确定第一张地图的密钥有效时,您可以使用
String value = regMap.get("key1").get("key2");
但是,如果在第一个映射中找不到键,则会抛出NullPointerException。要检查这一点,请执行以下操作:
String value;
Map<String, String> subMap = regMap.get("key1");
if (subMap != null) {
value = subMap.get("key2");
}
答案 4 :(得分:0)
我建议不要使用这样的结构。如前所述,最好在地图中使用自己的对象,这样您就可以比地图中的地图更好地访问它们。