如何从Map <string,map <string,string =“”>&gt;?</string,>中检索内容

时间:2013-04-18 10:43:22

标签: java

Map<String, Map<String,String>> regMap = new HashMap<String, Map<String,String>>();

如何从regMap检索内容?有没有可以存储三个相关内容的数据结构?

5 个答案:

答案 0 :(得分:4)

  

...还是有任何数据结构,我可以存储三个相关的东西?

只需创建自己的课程。

public class Foo {

  private final Bar thingOne;
  private final Bar thingTwo;
  private final Bar thingThree;

  // ...

}

然后,如果需要,您可以将其存储在Collection中。

注意:请不要将我的琐碎示例作为一个建议,您应该为字段foo1foo2等命名。为他们指定有意义的名称,例如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)

我建议不要使用这样的结构。如前所述,最好在地图中使用自己的对象,这样您就可以比地图中的地图更好地访问它们。