すっきりさせて分かりにくくする

考えてみたら、unmodifiableMapに渡すのは、
Mapであって配列ではないのだから、
new HashMap<>()で明示的に作成するまでもない。
最初のソースをunmodifiableMap用に少し変えるだけでいいのだった。

import java.util.Collections;
import java.util.List;
import java.util.Map;
...snip
            entry(202, "breakpoint")
        );
        Map<String, Integer> pam = Collections.unmodifiableMap(
            map.entrySet().stream()
                .collect(
                    Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey)
                )
        );
        System.out.println(map);
        System.out.println(pam);
...snip

これなら一時変数を閉じ込めるための不自然なブロックも要らない。
効率はimmutableなのより悪いのは仕方ないか。