Java从嵌套映射中分割映射

时间:2014-09-29 08:41:02

标签: java map hashmap

我有一个嵌套的地图如下,

 {domains={A={"name":"R01","uniqueId":"9SJE"},B={"name":"B01","uniqueId":"9BJE"},C={"name":"C01","uniqueId":"9CJE"}}            

如何通过传递密钥将其拆分为单个地图并将值作为地图获取。

实际地图将如下:

{ domains={img1={"name":"R01","uniqueId":"9SJE"},img2={={"name":"B01","uniqueId":"9BJE"}}}

1 个答案:

答案 0 :(得分:-1)

问题不明确,所以我会尝试回答,但列出我的假设。 如果我的假设不正确,那么当然答案是不正确的。

我假设{domains = {A = {表示法并不意味着您将此作为文本,但您有一张包含地图的地图,包含地图。

我假设你想要进入A,B,C

的内部地图

这可以这样工作:

public Map<String,String> getDomainProperties(Map map, String domainName) {
   if (!map.containsKey("domain") {
      return null; // or throw an exception if you prefer.
   }
   Map domainMap = map.get("domain");
   if (!domainMap.containsKey(domainName)) {
      return null; // or throw IllegalArgumentException or similar if you prefer
   }

   return (Map<String,String>) domainMap.get(domainName);
}

由于未指定输入映射,因此会收到有关强制转换的警告。从你的例子中可以看出:

Map<String, Map<String, Map<String, String>>> but that seemed a bit messy to write in the example