Javaのラムダ式を使ったコードのサンプルをいくつか紹介します。これらの例は、日常的によく使われるシナリオをカバーしており、ラムダ式の使い方とその便利さを示しています。
1. リストの各要素に操作を適用する
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;
public class LambdaExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
// 通常のループでの出力
for (String name : names) {
System.out.println(name);
}
// ラムダ式を使ってリストの各要素を出力
names.forEach(name -> System.out.println(name));
// メソッド参照を使ってさらに簡潔に
names.forEach(System.out::println);
}
}
2. コレクションの要素をフィルタリングし、変換する
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
// 偶数のみをフィルタリングし、それぞれの数値を2倍にしてリストとして収集
List<Integer> doubledEvens = numbers.stream()
.filter(n -> n % 2 == 0)
.map(n -> n * 2)
.collect(Collectors.toList());
doubledEvens.forEach(System.out::println);
}
}
3. スレッドでのラムダ式の使用
public class ThreadExample {
public static void main(String[] args) {
// 新しいスレッドを生成し、ラムダ式を使って実行内容を定義
new Thread(() -> {
for (int i = 0; i < 5; i++) {
System.out.println("Thread: " + i);
try {
Thread.sleep(400); // 400ミリ秒待機
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
}
4. ソートのカスタマイズ
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
public class SortExample {
public static void main(String[] args) {
List<String> cities = Arrays.asList("Tokyo", "New York", "London", "San Francisco");
// 長さに基づいて文字列をソート
cities.sort((s1, s2) -> s1.length() - s2.length());
cities.forEach(System.out::println);
// 逆順にソート
cities.sort(Comparator.reverseOrder());
cities.forEach(System.out::println);
}
}
これらの例は、ラムダ式がJavaプログラミングにおいてどのように役立つかを示しています。各例は特定のタスクを実現するためのシンプルで強力な方法を提供しています。
コメント