Map<String, Map<String,String>> regMap = new HashMap<String, Map<String,String>>();
如何从regMap
检索内容?有什么数据结构可以存储三个相关的东西吗?如何从Map <String,Map <String,String >>中检索内容?
Map<String, Map<String,String>> regMap = new HashMap<String, Map<String,String>>();
如何从regMap
检索内容?有什么数据结构可以存储三个相关的东西吗?如何从Map <String,Map <String,String >>中检索内容?
...或者是有任何的数据结构,在那里我可以存储三个相关的东西?
只需创建自己的班级。
public class Foo {
private final Bar thingOne;
private final Bar thingTwo;
private final Bar thingThree;
// ...
}
如果需要,您可以将其存储在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));
}
如果regMap.get(“firstKey”)返回null,将抛出NullPointerException – Rohit
这就是为什么我添加了:“如果您确定regMap中存在”firstKey“...” – BobTheBuilder
的一种方法是
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");
}
我建议不要使用这样的结构。如前所述,最好在地图中使用自己的对象,以便您可以比地图中的地图更好地访问它们。
如果您想获得有用的答案,您将不得不更详细地解释问题所在。 – Jesper