>  기사  >  Java  >  Java 8의 스트림 API: map() 메서드를 사용하여 컬렉션에 대한 변환 작업을 수행하는 방법

Java 8의 스트림 API: map() 메서드를 사용하여 컬렉션에 대한 변환 작업을 수행하는 방법

WBOY
WBOY원래의
2023-07-29 10:33:131679검색

Stream API는 Java 8에 도입되어 데이터 컬렉션을 운영하는 새로운 방법을 제공합니다. 스트림 API를 사용하면 더 간단하고 유연한 방식으로 컬렉션을 작업할 수 있으며, 여기서 map() 메서드는 일반적으로 사용되는 변환 작업입니다.

Java 8 이전에는 컬렉션을 변환할 때 일반적으로 for 루프나 반복자를 사용하여 컬렉션의 요소를 순회한 다음 하나씩 처리해야 했습니다. 스트림의 map() 메소드를 사용하면 컬렉션을 보다 편리하게 변환할 수 있어 작업 프로세스가 단순화됩니다.

먼저 map() 메소드의 정의를 이해해 봅시다. map() 메소드는 스트림 API의 중간 작업입니다. 이 함수는 스트림의 각 요소에 적용되어 새 요소에 매핑됩니다. 마지막으로 map() 메서드는 새 요소가 포함된 스트림을 반환합니다.

다음은 map() 메서드를 사용하여 컬렉션을 변환하는 샘플 코드입니다.

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

public class MapExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);
        numbers.add(5);

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

        System.out.println("原始集合: " + numbers);
        System.out.println("转换后的集合: " + squaredNumbers);
    }
}

위 샘플 코드에서는 먼저 정수가 포함된 컬렉션 번호를 만듭니다. 그런 다음 stream() 메서드를 호출하여 이를 스트림으로 변환합니다. 다음으로 map() 메소드를 호출하고 함수(n -> n * n)를 매개변수로 전달합니다. 이 함수가 하는 일은 스트림의 각 요소 n을 n 제곱으로 매핑하는 것입니다. 마지막으로, Collect() 메소드를 사용하여 변환된 요소를 새 목록으로 수집합니다.

위 코드를 실행하면 출력은 다음과 같습니다.

原始集合: [1, 2, 3, 4, 5]
转换后的集合: [1, 4, 9, 16, 25]

보시다시피 원래 세트의 각 요소는 제곱되었으며 새 요소는 새 목록에 수집되었습니다.

위의 예 외에도 map() 메서드를 사용하여 더 복잡한 변환 작업을 구현할 수도 있습니다. 예를 들어 문자열 컬렉션의 모든 문자열을 대문자로 변환하거나 컬렉션에 있는 개체의 특정 속성을 추출하여 새 컬렉션을 형성할 수 있습니다. map() 메소드는 우리가 전달하는 함수 로직에 따라 요소를 변환할 수 있으며 매우 유연합니다.

요약하자면, Java 8의 스트림 API는 컬렉션에 대한 변환 작업을 수행하는 편리한 방법을 제공합니다. map() 메소드는 핵심 메소드 중 하나이며 전달한 함수에 따라 스트림의 요소를 새 요소에 매핑하고 새 요소가 포함된 스트림을 반환할 수 있습니다. map() 메서드를 사용하면 컬렉션을 더욱 간결하고 유연하게 변환할 수 있어 코드의 가독성과 유지 관리성이 향상됩니다.

위 내용은 Java 8의 스트림 API: map() 메서드를 사용하여 컬렉션에 대한 변환 작업을 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.