0

以下に示すように、次の2つの異なるマップがあります..

Map<Integer, List<String>> multimap1 = new HashMap<Integer, List<String>>();
List<String> someList1 = new ArrayList<String>();
someList1.add("abc");
someList1.add("def");
someList1.add("ght");
multimap1.put(1, someList1);

そしてもう一つは..

Map<Integer, List<String>> multimap2 = new HashMap<Integer, List<String>>();
List<String> someList = new ArrayList<String>();
someList2.add("abc");
someList2.add("wed");
someList2.add("ght");
multimap2.put(1, someList2);

ここで、両方のマップの値をキーに対応するものと比較したいので、ロジックをアドバイスしてください。最初に multimap1 からの最初のマップからキーを取得し、multimap2 から最初のキーを取得してから、それらの値を比較します。

multimap1       multimap2

1   abc         1  abc

上記のように、両方のマップのキーを取得し、キーに対応する値を比較して、同じ値を持つ異なるマップの両方が最初のキーに対応するため、一致するため、両方のマップが同じであるというステートメントをコンソールに出力する必要がありますキーに対応する値があり、そうでない場合は、キーに対応する異なる値を持つ両方のマップを出力する必要があります。これを実現する方法を教えてください。

4

2 に答える 2

0

あなたのステートメントは少し混乱しています。両方のマップのキー 1 の値はリストです。

multimap1       multimap2

1   abc         1  abc

これらはキーが 1 のマップの値ではないため正しくありません。リスト内の残りの文字列も値の一部であるため、値の一部に過ぎません。

2 つのリストの値を比較している場合、それらが等しいことの意味に少し依存します。それらが同じ順序で同じ値を持つ必要がある場合は、2 つのリストのインデックスごとにチェックするだけです。それらが同じ値を持つ必要があり、順序が重要でない場合は、一方のすべての要素が他方にあるかどうか、またはその逆かどうかを確認します

于 2013-11-13T16:48:07.547 に答える