SeouliteLab

[Java/자바] Stream의 map() 메서드 사용 방법 본문

프로그래밍

[Java/자바] Stream의 map() 메서드 사용 방법

Seoulite Lab 2024. 3. 9. 00:54

Stream의 map() 메서드란?

Java의 스트림(Stream) API는 데이터를 처리하기 위한 편리한 방법을 제공합니다. Stream의 map() 메서드는 각 요소를 특정 함수에 적용하여 새로운 요소로 변환하는 데 사용됩니다. 이를 통해 데이터를 변환하고 가공할 수 있습니다.

Stream의 map() 메서드 사용 방법

Stream의 map() 메서드는 다음과 같은 형식을 갖습니다:

<R> Stream<R> map(Function<? super T, ? extends R> mapper)
  • mapper: 각 요소를 변환하는 함수를 지정하는 Function입니다.

Stream의 map() 메서드 예제

다음은 Stream의 map() 메서드를 사용하여 문자열 리스트의 각 요소를 대문자로 변환하는 예제 코드입니다.


import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamMapExample {
    public static void main(String[] args) {
        List words = Arrays.asList("apple", "banana", "cherry", "date");

        // 각 문자열을 대문자로 변환
        List upperCaseWords = words.stream().map(String::toUpperCase).collect(Collectors.toList());
        System.out.println("Uppercase words: " + upperCaseWords);
    }
}

추가 예제:

아래는 Stream의 map() 메서드를 사용하는 다양한 예제 코드입니다.


import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class MoreStreamMapExamples {
    public static void main(String[] args) {
        // 예제 1: 정수 리스트의 각 요소를 제곱하여 새로운 리스트 생성
        List numbers = Arrays.asList(1, 2, 3, 4, 5);
        List squares = numbers.stream().map(n -> n * n).collect(Collectors.toList());
        System.out.println("Squares: " + squares);

        // 예제 2: 문자열 리스트의 각 요소의 길이를 새로운 리스트에 저장
        List fruits = Arrays.asList("apple", "banana", "cherry");
        List lengths = fruits.stream().map(String::length).collect(Collectors.toList());
        System.out.println("Lengths: " + lengths);

        // 예제 3: 문자열 리스트의 각 요소를 길이가 5인 문자열로 변경하여 새로운 리스트 생성
        List words = Arrays.asList("java", "python", "javascript", "ruby");
        List fiveLetterWords = words.stream().map(s -> s.substring(0, Math.min(s.length(), 5))).collect(Collectors.toList());
        System.out.println("Five-letter words: " + fiveLetterWords);
    }
}