Map<String, Map<String,String>> regMap = new HashMap<String, Map<String,String>>();
如何从中检索内容regMap
?是否有任何数据结构可以存储三个相关的东西?
Map<String, Map<String,String>> regMap = new HashMap<String, Map<String,String>>();
如何从中检索内容regMap
?是否有任何数据结构可以存储三个相关的东西?
...或者是否有任何数据结构可以存储三个相关的东西?
只需创建自己的课程。
public class Foo {
private final Bar thingOne;
private final Bar thingTwo;
private final Bar thingThree;
// ...
}
然后,如果需要,您可以将其存储在 a 中Collection
。
注意:不要以我的琐碎示例作为建议,您应该将字段命名为foo1
等foo2
。给它们起有意义的名称,例如forename
,surname
等。
如果您确定 "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));
}
一种方法可能是
Map<String,String> innerMap= regMap.get("string");
String value=null;
if(innerMap!=null)
value=innerMap.get("insidemap");
当您确定第一个地图的密钥有效时,您可以使用
String value = regMap.get("key1").get("key2");
但是,当在第一个映射中找不到键时,这将引发 NullPointerException。要检查这一点,请执行以下操作:
String value;
Map<String, String> subMap = regMap.get("key1");
if (subMap != null) {
value = subMap.get("key2");
}
我建议不要使用这样的结构。如前所述,最好在 Map 中使用您自己的 Objects,因此您可以比 Map 中的 Map 更好地访问它们。