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

x86エミュレータやFPGA、WebGLにお熱なd-kamiがマイペースに書くブログ

JavaのMapの初期化から要素代入を1行で書こうぜ

何のために?と言われても理由なんてない。そこにはロマンしかない。Streamを使いたかっただけなんだよ!というわけでJava8なソースコード

Map<Integer, String> map = Stream.of(new Object[][]{{11, "大嶺"}, {12, "石川"}, {14, "大谷"}, {15, "関谷"}}).collect(Collectors.toMap(index -> (Integer)index[0], name -> (String)name[1]));

なお、匿名内部クラスとインスタンスイニシャライザを使ったほうがスマートな模様

Map<Integer, String> map = new HashMap<Integer, String>(){{put(11, "大嶺"); put(12, "石川"); put(14, "大谷"); put(15, "関谷");}};