[java] 스트림 API를 이용한 데이터 매핑 방법

스트림(Stream)은 자바 8부터 추가된 기능으로, 컬렉션 데이터를 처리하는 간편하고 효율적인 방법을 제공합니다. 스트림 API를 이용하여 데이터를 매핑하는 방법에 대해 알아보겠습니다.

데이터 매핑이란?

데이터 매핑은 한 데이터의 값을 다른 값으로 변환하는 작업을 의미합니다. 예를 들어, 정수 배열의 모든 값에 2를 곱해서 새로운 정수 배열을 만들거나, 문자열 배열의 각 요소의 길이를 구해서 정수 배열로 만드는 등의 작업이 데이터 매핑에 해당합니다.

스트림 API를 이용한 데이터 매핑 방법

스트림 API에서는 map() 메서드를 이용하여 데이터 매핑을 수행합니다. map() 메서드는 매개변수로 전달된 함수를 각 요소에 적용하고, 그 결과로 새로운 스트림을 반환합니다. 다음은 map() 메서드의 사용 예시입니다.

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

List<Integer> mappedNumbers = numbers.stream()
                                     .map(n -> n * 2)
                                     .collect(Collectors.toList());

System.out.println(mappedNumbers); // [2, 4, 6, 8, 10]

위 예시에서는 정수 리스트를 스트림으로 변환한 뒤 map() 메서드를 이용하여 각 요소에 2를 곱했습니다. 그 결과로 새로운 정수 스트림이 생성되고, 이를 다시 리스트로 변환하여 mappedNumbers 변수에 할당했습니다. 마지막으로, mappedNumbers를 출력하게 되면 변환된 결과가 나타납니다.

또한, 스트림 API를 이용하여 문자열 배열의 각 요소의 길이를 구해서 새로운 정수 배열을 만들 수도 있습니다.

List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");

List<Integer> nameLengths = names.stream()
                                 .map(String::length)
                                 .collect(Collectors.toList());

System.out.println(nameLengths); // [5, 3, 7, 5]

위 예시에서는 문자열 리스트를 스트림으로 변환한 뒤 map() 메서드를 이용하여 각 요소의 길이를 구했습니다. 그 결과로 새로운 정수 스트림이 생성되고, 이를 다시 리스트로 변환하여 nameLengths 변수에 할당했습니다. 마지막으로, nameLengths를 출력하면 각 요소의 길이가 나타납니다.

마무리

스트림 API의 map() 메서드를 이용하면 데이터 매핑을 간편하게 수행할 수 있습니다. map() 메서드는 각 요소에 적용할 함수를 인자로 전달하고, 그 결과로 새로운 스트림을 반환합니다. 이를 이용하여 원하는 데이터 매핑 작업을 수행할 수 있습니다.

더 자세한 내용은 Java 스트림 API 문서를 참고하시기 바랍니다.