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

如何从中检索内容regMap?是否有任何数据结构可以存储三个相关的东西?

4

5 回答 5

4

...或者是否有任何数据结构可以存储三个相关的东西?

只需创建自己的课程。

public class Foo {

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

  // ...

}

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

注意:不要以我的琐碎示例作为建议,您应该将字段命名为foo1foo2。给它们起有意义的名称,例如forename,surname等。

于 2013-04-18T10:45:25.590 回答
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));
}
于 2013-04-18T10:45:20.590 回答
0

一种方法可能是

Map<String,String> innerMap= regMap.get("string");
String value=null;
if(innerMap!=null)
 value=innerMap.get("insidemap");
于 2013-04-18T10:46:51.970 回答
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");
}
于 2013-04-18T10:47:41.650 回答
0

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

于 2013-04-18T10:49:24.573 回答