比较两个嵌套的哈希映射

时间:2016-09-29 13:26:53

标签: java

我有两个嵌套的以下结构的哈希图(嵌套级别可能会有所不同) 嵌套值可以是地图或地图数组的实例。

{

  key1:[

    {

      nkey1:[

        nval1,
        nval2
      ]
    },
    {

      nkey2:[

        nval3,
        nval4
      ]
    }
  ]
}

目前我正在两个地图上进行等于操作,期望所有键都相同。我希望在比较时排除某些键。

说我应该说我想要排除key1 :: nkey2。我该如何做到这一点?  map.keySet()对嵌套地图没有帮助。如何通过遍历此嵌套地图的键比较来有效地执行密钥?

1 个答案:

答案 0 :(得分:1)

您可以展平地图,即将折叠的关键字包含在主地图中。对于您的示例,您将拥有密钥:

"key1"
"key1:nkey1"
"key1:nkey2"

在这种情况下,您不需要在每个键上使用深度等于,因为无论如何最终都会检查所有级别。并且您可以在遍历单个keySet()时删除所需的任何键。