> Java > java지도 시간 > 본문

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

王林
풀어 주다: 2023-07-30 22:07:58
원래의
1221명이 탐색했습니다.

Java 8의 Stream API: 컬렉션에서 집계 작업을 수행하기 위해 Reduce() 메서드를 사용하는 방법

소개:
Java 8에서는 컬렉션 데이터를 처리하는 더 강력하고 편리한 방법을 제공하는 Stream API가 도입되었습니다. Stream API의 Reduce() 메서드는 컬렉션의 집계 작업에서 중요한 역할을 합니다. 이 기사에서는 Reduce() 메소드의 사용을 소개하고 몇 가지 코드 예제를 제공합니다.

1. Reduce() 메서드 개요
Reduce() 메서드는 컬렉션에 대한 집계 작업을 위한 Stream API의 핵심 메서드 중 하나입니다. 컬렉션 요소가 집계되는 방법을 정의하는 BinaryOperator 유형의 매개 변수를 허용합니다. Reduce() 메서드는 컬렉션의 요소에 하나씩 집계 작업을 적용하고 선택적 결과를 반환합니다.

reduce() 메서드에는 두 가지 오버로드된 버전이 있습니다:

  1. T 감소(T ID, BinaryOperator 누산기)
  2. Optional 감소(BinaryOperator 누산기)

첫 번째 버전 ) 메소드는 초기값 ID와 이진 연산자 누산기를 허용합니다. 초기값을 계산의 시작점으로 사용하고 각 요소를 누산기에 적용한 후 최종적으로 집계된 결과를 반환합니다.

reduce() 메서드의 두 번째 버전은 이진 연산자 누산기만 허용합니다. 초기값을 제공하지 않으므로 가능한 결과를 나타내는 Optional 개체를 반환합니다.

2. Reduce() 메소드 사용 예

다음은 Reduce() 메소드의 다양한 사용법을 보여주는 몇 가지 코드 예입니다.

  1. 세트의 요소를 합산합니다.
    List asList( 1, 2, 3, 4, 5);
    int sum =number.stream()

             .reduce(0, (a, b) -> a + b);
    로그인 후 복사

    System.out.println(sum); // 출력: 15

  2. 세트의 최대값을 찾습니다. 요소:
    List 숫자 = Arrays.asList(1, 2, 3, 4, 5);
    Optional max =number.stream()

                            .reduce(Integer::max);
    로그인 후 복사

    System.out.println(max.orElse(0 )); 출력: 5

  3. 문자열 연결:
    List strings = Arrays.asList("Java", "Stream", "API");
    String result = strings.stream()

                    .reduce("", (a, b) -> a + " " + b);
    로그인 후 복사

    System.out.println(result); // 출력: Java Stream API

  4. 사용자 정의 집계 작업:
    List people = Arrays.asList(
    new Person("Alice", 20),
    new Person ("Bob", 30),
    new Person("Charlie", 25)
    );
    int totalAge = people.stream()

                  .reduce(0, (sum, p) -> sum + p.getAge(), (a, b) -> a + b);
    로그인 후 복사

    System.out.println(totalAge); // 출력: 75

이 예에서는 사용자 정의 이항 연산자를 사용하여 Person 개체의 나이를 합산합니다.

결론:
reduce() 메서드는 컬렉션 집계 작업을 위한 Stream API의 중요한 메서드 중 하나입니다. Reduce() 메서드를 통해 집합의 요소를 합산하고, 최대값을 구하고, 문자열을 연결하는 등의 작업을 수행할 수 있습니다. 실제 개발에서는 더 복잡한 집계 작업을 구현하기 위해 필요에 따라 이진 연산자를 사용자 정의할 수 있습니다. Reduce() 메소드를 능숙하게 사용하면 코드를 더욱 간결하고 효율적으로 만들 수 있습니다.

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿