2017-04-04 8 views
3

マップに別の地図のすべての内容が含まれているかどうかを確認しようとしています。 例えば、私はMap<String, List<String>>あるMAPAを有し、要素は次のとおり "1" - > [ "A"、 "B"] "2" - > "C"、 "D"]地図に別の地図のすべての内容が含まれているかどうか確認してください。

また Map<String, List<String>>ある

別MAPBは、要素は、次のとおり "1" - > [ "A"] "2" - > "C"、 "D"]、

I関数を作成しますこの場合、falseを返すcompare(mapA、mapB)

これを行うにはどのような方法が最適ですか?

おかげ

あなた compare(mapA, mapB)メソッド内
+2

boolean isStrictlyDominate(LinkedHashMap<Integer, HashSet<Integer>> firstMap, LinkedHashMap<Integer, HashSet<Integer>> secondMap){ for (Map.Entry<Integer, HashSet<Integer>> item : secondMap.entrySet()) { int secondMapKey = item.getKey(); if(firstMap.containsKey(secondMapKey)) { HashSet<Integer> secondMapValue = item.getValue(); HashSet<Integer> firstMapValue = firstMap.get(secondMapKey) ; if(!firstMapValue.containsAll(secondMapValue)) { return false; } } } return !firstMap.equals(secondMap); } 

呼び出すことはありません - uは必要なもの

はこれですそれは比較する。あなたは比較していません。 'containsAll'や' subsumes'のようなものを呼び出します。 –

答えて

4

、あなたは簡単に使用することができます。@Jacob Gが提供する

0

答えは文句を言わないあなたのケースで動作し、それだけで(キー、値)ペアの余分な場合に動作しますMapAでmapB = {1 " - > [" a "、" b "]のようなMapA = {1" - > ["a"、 "b"] "2" }。 (あなただけのreturn真の最後returnの文で、その後厳格な支配をチェックしたくない場合)、ちょうどあなたの未来の自己の健全性のために

関連する問題