[Java] 람다 & Stream

정석·2023년 12월 28일

Java

목록 보기
21/39
post-thumbnail

람다식이란?

▶︎ 함수에 함수를 파라미터로 넣고자 할 때 사용
▶︎ 람다식 문법
(매개변수 목록) -> {실행문}

자바 내에서 람다 전용 메서드가 존재한다. 따라서 활용하기 좋다.

  • 일반적인 메소드
int max(int a, int b) {
	return a > b ? a : b;
}
  • 람다식 (익명 함수)
(a, b) -> a > b ? a : b

이와 같이 변형할 수 있으며 반환타입, 이름, return, ; 을 모두 제거하고,

-> 와 같은 화살표를 추가한다.

예제

Person 이란 클래스가 존재하고 여러명의 사람을 리스트에 추가한 뒤, 일정 범위의 사람을 Stream으로 출력하도록 한다.

  • Person
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;
    }
}
  • Main
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); // 최종 연산 출력
    }
}

스트림 사용법

  1. 스트림 생성

    • 데이터 소스로부터 스트림을 생성
  2. 중간 연산

    • 원하는 형태로 데이터 가공
  3. 최종 연산

    • 원하는 형태로 데이터 출력

0개의 댓글