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 のアロー関数みたいな感覚で書きそうになる。=> ではなく -> なので注意。