> Java > Java 스트리밍 배열 목록 및 이전 기록과 비교

Java 스트리밍 배열 목록 및 이전 기록과 비교

WBOY
풀어 주다: 2024-02-22 14:00:10
앞으로
674명이 탐색했습니다.

php 편집자 Yuzai가 Java Q&A 이번 호를 통해 스트리밍을 사용하여 Java에서 배열 목록을 처리하고 이전 기록과 비교하는 방법을 논의합니다. 이 기사를 통해 Java의 스트리밍 기능을 사용하여 배열 목록에서 효율적으로 작동하고 이를 이전 레코드와 비교하는 방법을 배웁니다. 이 주제를 더 깊이 탐구하고 Java 프로그래밍에 대한 이해와 기술을 향상시켜 보겠습니다.

질문 내용

ID와 int 값을 포함하는 간단한 레코드 클래스가 있습니다. 여러 "정렬된" 레코드 요소가 목록에 저장됩니다.

목록을 반복하고 현재 요소를 이전 요소와 비교하여 값의 차이를 찾고 싶습니다.

코드:

으아악

가능한 경우 스트림을 사용하여 현재 Recorda.value를 이전 Recorda.value와 비교하고 결과를 동일한 ID와 값을 가진 RecordB에 매핑하되 현재 이전 값을 저장하고 싶습니다.

마지막으로 레코드 목록에는

가 포함됩니다.
  • 1, 10, 0 //(10-0)
  • 2, 15, 5 //(15-10)
  • 3, 25, 10 //25-15
  • 4, 30, 5 //30-25

루프 및 이전_val 변수에 대한 클래스를 피하고 싶습니다. 스트림을 사용하여 이를 수행하는 방법에 대한 아이디어가 있습니까?

해결 방법

intstream

을 사용할 수 있습니다. 으아악

이 방법은 다소 직관적이지 않아서 실제로 찾아보아야 했습니다.
StackOverflow – Foreach Lambda에서 이전 요소를 사용하는 Java 스트림.

일반적으로 streams의 사용은 값 집합을 집합 하는 것이지 반드시 비교하고 대조할 필요는 없습니다.
강의: 집계 작업(Java™ 튜토리얼 > 컬렉션).

이것은 Collector 클래스와 Collector#of 메소드를 사용한 예입니다.

기본적으로 수집 중에는 이미 수집된 항목에서 이전 요소를 검색합니다.

BiConsumer 매개변수의 경우 a는 지금까지 수집된 요소입니다.

으아악

출력

으아악

마지막으로 recordb 클래스를 제거하고 Map만 사용할 수도 있습니다.

으아악

위 내용은 Java 스트리밍 배열 목록 및 이전 기록과 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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