0
0

Lambda式の理解

Last updated at Posted at 2024-07-21

関数型インターフェスとLambda

Javaでは変数として関数(処理の実装)を受け取るための変数が用意されています。
関数型インタフェースの用途を理解することでLambda式も理解できるかと思います。

変数型 サンプル
String "abcdefg"
Integer 123456
関数型インタフェース x+yの結果を返す関数

関数型インタフェースについてはjava.util.functionパッケージ内で準備されています。
関数型インタフェースの概要についていくつか説明します。

関数型インタフェース メソッド 概要
Function<T,R> R apply(T t) 入力値Tを受け取り、結果Rを返却
Predicate<T> boolena test(T t) 入力値Tを受け取り、評価結果booleanを返却
Consumer<T> void accept(T t) 入力値Tを受け取る
Supplier<T> T get() 結果Tを返却

Function<T,R>のサンプル

入力値を受け取り、大文字変換し返却

public class App {
    public static void main(String[] args) {
        Function<String, String> toUpperCase = String::toUpperCase;
        System.out.println(toUpperCase.apply("hello world!"));
    }
}

Predicate<T>のサンプル

入力値を受け取り、ブランクであるかどうか検証

public class App {
    public static void main(String[] args) {
        Predicate<String> predicate = String::isEmpty;
        System.out.println(predicate.test("abc"));
    }
}

Consumer<T>のサンプル

入力値を受け取り、結果は返さない

public class App {
    public static void main(String[] args) {
        Consumer<String> consumer = System.out::println;
        consumer.accept("Hello World!");
    }
}

Supplier<T>のサンプル

引数は受け取らず、結果のみを返却

public class App {
    public static void main(String[] args) {
        Supplier<String> supplier = () -> "Hello World!";
        System.out.println(supplier.get());
    }
}

まとめ

今回は関数型インタフェースをlambdaで記載したサンプルコードとなります。
lambdaを利用することで直感的なコード記載が可能になりますので、生産性向上、品質向上に寄与できると思います。
lambda式マスターとなり、スキル向上を目指していきましょう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0