▶︎ 함수에 함수를 파라미터로 넣고자 할 때 사용
▶︎ 람다식 문법
(매개변수 목록) -> {실행문}
자바 내에서 람다 전용 메서드가 존재한다. 따라서 활용하기 좋다.
int max(int a, int b) {
return a > b ? a : b;
}
(a, b) -> a > b ? a : b
이와 같이 변형할 수 있으며 반환타입, 이름, return, ; 을 모두 제거하고,
-> 와 같은 화살표를 추가한다.
Person 이란 클래스가 존재하고 여러명의 사람을 리스트에 추가한 뒤, 일정 범위의 사람을 Stream으로 출력하도록 한다.
public class Person {
private String name;
private int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Person> people = Arrays.asList(
new Person("John", 20),
new Person("Sarah", 25),
new Person("Jane", 30)
);
people.stream() // 스트림 생성
.filter(p -> p.getAge() >= 25) // 중간 연산
.map(Person::getName) // 인스턴스 메서드
.forEach(System.out::println); // 최종 연산 출력
}
}
스트림 생성
중간 연산
최종 연산