주어진 기본 요소 또는 {0, 1, 2, 3, 4}와 같은 객체의 스트림을 어떻게 쉽게 변환할 수 있습니까? 아래 그림과 같이 연속적인 쌍이 있습니까?
{new Pair(0, 1), new Pair(1, 2), new Pair(2, 3), new Pair(3, 4)}
솔루션
Java 8 스트림 라이브러리는 병렬 처리를 위해 스트림을 관리 가능한 덩어리로 나누는 데 탁월하지만 상태 저장 파이프라인 단계에서는 문제를 제기합니다. 현재 스트림 요소의 인덱스를 검색하거나 인접한 요소에 액세스하는 것은 상당한 제한 사항입니다.
이러한 제약 조건을 우회하기 위해 우리는 인덱스를 활용하여 스트림을 구동하는 기술을 사용하는 경우가 많습니다. 다음은 이 접근 방식으로 쌍을 생성할 수 있는 방법을 간략하게 보여줍니다.
코드 조각:
IntStream.range(1, arrayList.size()) .mapToObj(i -> new Pair(arrayList.get(i-1), arrayList.get(i))) .forEach(System.out::println);
해결 방법 설명:
이 예에서는 1부터 시작하는 인덱스로 ArrayList를 반복하여 다음을 보장합니다. 모든 인덱스 i에 대해 arrayList.get(i-1)과 arrayList.get(i)에 모두 액세스할 수 있습니다. 코드의 핵심은 각 인덱스를 인접한 요소를 포함하는 쌍으로 변환하는 mapToObj 함수입니다.
제한 사항 및 확장:
이 접근 방식은 다음과 같은 경우에 효과적입니다. 무작위 액세스 컬렉션에 저장된 유한 스트림은 무한 스트림에 적용할 수 없습니다. 그러나 파이프라인을 병렬로 실행하여 성능상의 이점을 제공할 수 있습니다.
위 내용은 요소 스트림에서 연속적인 쌍을 효율적으로 생성할 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!