Java初心者の競技プログラミング日記

Dvorak配列でjavaを書いてます

ラムダ式の使いかたメモ

ラムダ式の使いかたを雑然とメモしていく記事です。


リスト、マップを出力する

list.forEach(e -> out.println(e)); //リストを回して出力
map.forEach((key,value) -> out.println(key+" "+value); //マップを回して出力


とくにマップを出力するときには便利。以前の僕は

for (Map.Entry<String,Integer> e : map.entrySet()) {out.println(e.getKey()+" "+e.getValue());}


と書いてマップを回していたけれど、forEach+ラムダ式のほうが断然ラク。


ラムダ式のなかで変数や式を使うこともできる

//mapを回し、キーに"aaa"を加えて値を10倍したものを出力
map.forEach((k,v) -> {
	k += "aaa";
	v *= 10;
	out.println(k+" "+v);
});


ラムダ式で書くときには一行しか記述できないものと思い込んでいたので、変数や式が通常のメソッドと同じように使えると知って驚いた。上級者の方がもしこの記事を見ていたら、何をそんな当たり前のことを、と思われるかもしれないが……。


streamと併用する

list.stream().filter(s -> s.length()>10).forEach(System.out::println);


とすることで、文字列の長さが10以上の要素のみ出力することができる。