[java] 람다 표현식을 사용하여 스트림을 어떻게 매핑할 수 있나요?

자바에서 람다 표현식과 스트림을 이용하면 데이터를 변환하고 가공할 수 있습니다.

여기에는 두 가지 종류의 매핑이 있습니다: 원시 타입을 객체로 매핑하거나 스트림의 각 요소를 변환하는 매핑입니다.

원시 타입을 객체로 매핑하기

원시 타입의 스트림을 객체의 스트림으로 매핑하려면 mapToObj() 메서드를 사용합니다.

IntStream.of(1, 2, 3, 4, 5)
    .mapToObj(i -> "Number " + i)
    .forEach(System.out::println);

이 예제에서 mapToObj 메서드는 각 숫자를 “Number {숫자}” 형태의 문자열로 매핑합니다.

요소 변환 매핑하기

map() 메서드를 사용하여 스트림의 각 요소를 변환할 수 있습니다.

List<String> names = List.of("Alice", "Bob", "Charlie");
List<String> upperCaseNames = names.stream()
    .map(String::toUpperCase)
    .collect(Collectors.toList());

이 예제에서 map 메서드는 각 이름을 대문자로 변환합니다.

요약

람다 표현식을 사용하여 스트림을 매핑하기 위해 map()mapToObj() 메서드를 사용할 수 있습니다. 이를 통해 데이터를 가공하고 변환하는 과정을 간편하게 할 수 있습니다.

관련 자료: The Java Tutorials - Processing Data with Streams