0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Kotlin】Javaのラムダ式との違い

0
Posted at

KotlinとJavaのラムダ式の違いについて、サンプルコードから学ぶ

ラムダ式とは

関数を簡潔に表現する方法の一つ

  • 名前を持たないため、直接呼び出すことはできない
  • その代わりに、他の関数に引数として使用される
    • 以下のコードでいう{ it % 2 == 0 }がラムダ式

Kotlin

val numbers = listOf(1, 2, 3, 4, 5)
val evenNumbers = numbers.filter { it % 2 == 0 }
println(evenNumbers) // [2, 4]

numbersの要素から偶数のみを抽出し、evenNumbersに格納される

Kotlinのラムダ式では、itという暗黙的な変数を使用することで引数の省略が可能となっている

Java

次に、同様の処理をJavaで記載する

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream()
    .filter(n -> n % 2 == 0)
    .collect(Collectors.toList());
System.out.println(evenNumbers); // [2, 4]

Javaのラムダ式では、引数を明示的に宣言する必要があるためnを使用している

また、Streamの処理結果をCollectors.toListを使用してListに変換している

まとめ

Kotlinのラムダ式はJavaのラムダ式と比較して、簡潔で直感的に理解しやすいことが分かった

参考文献

Collectors (Java Platform SE 8 )
9cubed Kotlin - ラムダ式

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?