>  기사  >  Java 8 스트림은 3개 필드로 그룹화하고 다른 두 필드를 합계로 집계합니다.

Java 8 스트림은 3개 필드로 그룹화하고 다른 두 필드를 합계로 집계합니다.

PHPz
PHPz앞으로
2024-02-22 13:46:06961검색

php 편집기 Strawberry는 Java 8에서 스트림을 3개 필드로 그룹화하고 다른 두 필드를 합계로 집계하는 방법에 대한 질문과 답변을 제공합니다. Java 프로그래밍에서 스트림은 컬렉션을 처리하는 새로운 방법입니다. 스트림을 사용하면 데이터를 보다 편리하게 조작하고 처리할 수 있습니다. 이 기사에서는 Java 8의 스트림 기능을 사용하여 3개 필드로 그룹화하고 다른 두 필드에 대해 합계 집계를 수행하는 방법을 자세히 소개합니다. 이 흥미로운 질문을 함께 살펴보겠습니다!

질문 내용

Java 8이 처음인데 유사한 질문에 대해 제공된 솔루션을 구현하는 데 어려움을 겪고 있습니다. 도와주세요.

Java 8에서 나머지 두 개의 정수 필드를 합산해야 하는 여러 행을 반환하는 세 개의 필드로 그룹화하는 방법입니다. 아래 dto/pojo 클래스에서는 uuid, msgdate 및 채널 조합의 고유 키를 기반으로 들어오는 개수와 나가는 개수 필드를 합산해야 합니다.

으아악

//초기화 목록 예시입니다.

으아악

출력 개체에는 다음 데이터가 포함되어야 합니다.

uuid msgdate 채널 수신 개수 발신 개수

c9c3a519 2023년 12월 민수기 8 3

c9c3a519 2023년 11월 숫자 4 4

c9c3a519 2023년 12월 매뉴얼 8 3

c9c3a519 2023년 11월 매뉴얼 4 4

...

...

...

해결 방법

결과를 지도로 수집하세요. 이 예에서는 Collectors.toMap(keyMapper, valueMapper, mergeFunction, mapFactory)을 사용합니다.

또한 간결함을 위해 롬복 주석을 사용합니다.

먼저 그룹화하려는 키와 집계 데이터를 나타내는 클래스를 만듭니다.

으아악 으아악

그런 다음 키와 초기 집계를 생성하는 2가지 방법을 더 추가하여 reportdata 확장합니다.

으아악

데이터 수집:

으아악

컬렉터의 매개변수는 다음과 같습니다:

  1. reportdata::createkey - 그룹화할 키 생성(지도의 키)
  2. reportdata::createcount - 단일 reportdata::createcount - 从单个 reportdata(지도 값)에서 초기 집계
  3. 를 생성합니다.
  4. count::merge - 在按键冲突时合并两个 count(병합 방법 참조)
  5. linkedhashmap::new - 用于插入结果的 map공장. 삽입 순서를 유지하고 싶지만 필요하지 않은 경우 매개변수를 생략하여 기본 팩토리를 사용할 수 있습니다.

인쇄:

으아악

위 내용은 Java 8 스트림은 3개 필드로 그룹화하고 다른 두 필드를 합계로 집계합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제