2016-09-29 7 views
0

次の構造の2つのネストされたハッシュマップがあります(ネストのレベルは異なる場合があります)。 ネストされた値は、マップのインスタンスまたはマップの配列になります。2つのネストされたハッシュマップの比較

{ 

    key1:[ 

    { 

     nkey1:[ 

     nval1, 
     nval2 
     ] 
    }, 
    { 

     nkey2:[ 

     nval3, 
     nval4 
     ] 
    } 
    ] 
} 

現在、すべてのキーが同じであることを期待する2つのマップでequals演算を実行しています。私は比較中に特定のキーを除外したい。

私はkey1 :: nkey2を除外したいと言います。これをどうやって達成するのですか? map.keySet()は、ネストマップでは役に立ちません。この入れ子にされた地図を見ながらキーを比較することで効率的にキーを作成するにはどうすればよいですか?

答えて

1

マップをフラットにすることができます。つまり、折りたたまれたキーをメインマップに含めることができます。あなたの例のためには、キー必要があります:あなたは深く使用する必要はありません。この場合

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

をすべてのレベルは、最終的にはとにかく確認されるので、各キーに等しいです。また、単一のkeySet()をトラバースしながら、必要なキーを削除することもできます。

+0

これは意味があります...同じキー名を持つnkey1とnkey2の場合、追加の比較が必要です – Tania

+0

@Tania同じレベルのキーが一意でない可能性がありますか?彼らは同じマップであり、その内容がマージされることを意味するのでしょうか、それとも本当に別のマップでなければなりませんか? – bashnesnos

関連する問題