【Java】ラムダ式 ~入門編~

ラムダ式

 * Java1.8から導入できる

■ 構文

[1] 引数1つ式1つ

引数 -> 式

[2] 引数2つ以上、式1つ

(引数1[,引数2]・・・) -> 式

[3] 引数1つ式複数

引数 -> {
処理
return 値;
}

[4] 引数2つ以上式複数

(引数1[,引数2]・・・) -> {
処理
return 値;
}

■ サンプル

 * とりあえず、サンプルを作って少しでも感じを掴んでみる

Sample01Lambda.java

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Sample01Lambda {
   public static void main(String[] args) {
      String[] values = {"A001", "B001", "AB001", "BA001"};
      List<String> list = Arrays.asList(values);
      List<String> results = list.stream().filter(x -> x.startsWith("B")).collect(Collectors.toList());
      for (String result : results) {
         System.out.println("Result : " + result);
      }
   }
}

出力結果

Result : B001
Result : BA001

■ 補足:うまく動かない場合

 * 「{ ... }」で囲って、ログ出力してみる

修正前
... = list.stream().filter(x -> x.startsWith("B"))...
修正後
... = list.stream().filter(x -> {
   boolean isStartsWithB = x.startsWith("B");
   System.out.println("Logout : " + isStartsWithB);
   return isStartsWithB;
})...


関連記事

ラムダ式 ~入門編~

https://blogs.yahoo.co.jp/dk521123/34188394.html

ラムダ式 ~ 基本編 / Stream API

https://blogs.yahoo.co.jp/dk521123/34192426.html

ラムダ式 ~ 応用編 / サンプル集・その1 ~

https://blogs.yahoo.co.jp/dk521123/37093852.html

ラムダ式 ~ 応用編 / サンプル集・その2 / 過去直近データを取得する ~

https://blogs.yahoo.co.jp/dk521123/37132834.html

コレクション ~ List 編~

https://blogs.yahoo.co.jp/dk521123/32156111.html