020 コレクションフレームワーク(Map) 016 解答例

import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        // 与えられた整数型のキーと値からなるマップ ageMap
        Map<String, Integer> ageMap = new HashMap<>();
        ageMap.put("Alice", 25);
        ageMap.put("Bob", 30);
        ageMap.put("Charlie", 25);
        ageMap.put("David", 40);
        ageMap.put("Eva", 30);

        // 特定の値を持つエントリを削除
        removeEntriesByValue(ageMap, 25);

        // 結果を表示
        System.out.println("削除後のマップ: " + ageMap);
    }

    // 特定の値を持つエントリを削除するメソッド
    private static void removeEntriesByValue(Map<String, Integer> map, int valueToRemove) {
        // イテレータを使用してエントリを反復処理
        Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, Integer> entry = iterator.next();

            // 特定の値を持つエントリを削除
            if (entry.getValue() == valueToRemove) {
                // イテレータを使用してエントリを削除
                iterator.remove();
                System.out.println("削除されたエントリ: " + entry.getKey() + " - " + entry.getValue());
            }
        }
    }
}

このコードでは、removeEntriesByValue メソッドを使用して特定の値を持つエントリを削除しています。イテレータを使用してマップのエントリを反復処理し、特定の値と一致するエントリを見つけたら、イテレータを介してそのエントリを削除しています。

「020 コレクションフレームワーク」問題集リスト