람다식은 함수형 인터페이스를 구현한다.
Comparator<Integer> order = (a, b) -> a - b;
Predicate<Integer> isEven = x -> x % 2 == 0;
Consumer<String> printer = s -> System.out.println(s);
BinaryOperator<Integer> sum = (a, b) -> a + b;
Function<String, Integer> f = s -> s.length();
List<String> result = Stream.of("apple", "banana", "cherry")
.collect(Collectors.toList());
System.out.println(result); // [apple, banana, cherry]
Set<Integer> result = Stream.of(1, 2, 2, 3)
.collect(Collectors.toSet());
System.out.println(result); // [1, 2, 3]
Map<String, Integer> result = Stream.of("apple", "banana", "cherry")
.collect(Collectors.toMap(
fruit -> fruit, // 키: 과일 이름
fruit -> fruit.length())); // 값: 과일 이름의 길이
System.out.println(result); // {apple=5, banana=6, cherry=6}
String result = Stream.of("apple", "banana", "cherry")
.collect(Collectors.joining(", "));
System.out.println(result); // apple, banana, cherry
long count = Stream.of(1, 2, 3, 4)
.collect(Collectors.counting());
System.out.println(count); // 4
Map<Integer, List<String>> result = Stream.of("apple", "banana", "cherry")
.collect(Collectors.groupingBy(String::length));
System.out.println(result); // {5=[apple], 6=[banana, cherry]}
집계자 사용.