私は2つのハッシュマップを持っています:
Map<String, String> mapA = new HashMap<String, String>();
Map<String, String> mapB = new HashMap<String, String>();
TreeSet<String> uniquekeys = new TreeSet<String>();
mapA.put("1","value1");
mapA.put("2","value2");
mapA.put("3","value3");
mapA.put("4","value4");
mapA.put("5","value5");
mapA.put("6","value6");
mapA.put("7","value7");
mapA.put("8","value8");
mapA.put("9","value9");
mapB.put("1","value1");
mapB.put("2","value2");
mapB.put("3","value3");
mapB.put("4","value4");
mapB.put("5","value5");
2つのハッシュマップから共通のキーと値のペアを取得するために、以下のロジックを記述しました。
uniquekeys.addAll(mapA.keySet());
uniquekeys.addAll(mapB.keySet());
次に、のキーを使用して、treeset: uniquekeys
mapAとmapBから一意のキーと値のペアを取得します。しかし、これでmapAのすべてのキーの詳細が得られるわけではありません。この方法には欠陥があることは理解していますが、適切な論理を思い付くことができませんでした。mapAとmapBに共通のキーと値のペアを新しいHashMapに取得する方法を誰かに教えてもらえますか?
次の方法でJava 8ストリームを使用してそれを行うことができます。
Map<String, String> commonMap = mapA.entrySet().stream()
.filter(x -> mapB.containsKey(x.getKey()))
.collect(Collectors.toMap(x -> x.getKey(), x -> x.getValue()));
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加