Java8 復習 : ラムダ式の書式
今更 Java8 の復習。というか、ネタがなくて過去のメモを漁っていたら Java8 で登場したラムダ式や Stream API の練習をしているコード片が出てきたので、載せてみようという。
public class Java8Sort {
public static void main(String[] args) {
// 歴代大統領の名前一覧
String[] presidentsArray = {
"Richard Nixon",
"Gerald Ford",
"Jimmy Carter",
"Ronald Reagan",
"George Bush",
"Bill Clinton",
"George Bush",
"Barack Obama"
};
// ソートしてみる
Arrays.sort(presidentsArray, (a, b) -> a.compareToIgnoreCase(b));
// ForEach で名前を一つずつ出力する
Arrays.stream(presidentsArray).forEach(president -> System.out.println(president));
// ラムダ式の書式として、本文が複数ある場合はブロック {} で書く
Arrays.stream(presidentsArray).forEach(president -> {
System.out.println(president);
});
// 関数インターフェースは既存のメソッドやコンストラクタの参照を渡せる
// これは e -> System.out.println(e) と同義
Arrays.stream(presidentsArray).forEach(System.out::println);
}
}
僕は元々 Java からプログラムを始めたが、最近は JavaScript ばかりなので、ついつい ES2015 のアロー関数みたいな感覚で書きそうになる。=>
ではなく ->
なので注意。