マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

JavaのMapの初期化と列挙

Javaの連想配列的な存在のMapですが、初期化や列挙がめんどくさかったりしましたがだいぶ変わってきたなという印象です。ただ、初期化用の構文ができたとかそういうわけではないけど、javadoc見ていたらいろいろ加わったんだなと思った。列挙に関しては以前はentrySet使うのがめんどくさてkeySetでキー一覧を取得してループしていたが、今はstream、ラムダ式、型推論のおかげで楽にはなったような?ofやofEntriesで作ったMapはputやremoveなど要素の追加や削除ができないのでそこらへんはうまくやっていかないと。めんどくさいときはあきらめる

import java.util.Map;
import static java.util.Map.entry;

public class EntrySample{
    public static void main(String... args){
        var map = Map.ofEntries(
            entry("Java", "じゃば"),
            entry("C++", "しーぷらぷら"),
            entry("JavaScript", "あやしいやつ")
        );
        
        map.entrySet().stream().filter(e -> e.getKey().startsWith("Java"))
            .forEach(System.out::println);
    }
}