병렬 스트림의 경우에만 의미가 있습니다. 주문 병렬 스트림의 경우, distinct()
작동, 그것은, 즉 안정성 보장거야 유지하기 위해 중복 된 요소에 대한
를 추가 작업을 할 수있다, 만남 위해 처음으로 나타나는 요소는 그대로 유지됩니다
합니다 (javadoc for Stream.distinct()에서 API 주 부분을 참조. 순서화 병렬 스트림의 경우
, 이러한 보증 스트림. 이런 식으로, 순서화 paralle에서 정렬 특성을 제거 이미 정렬되지 않은 한, 계속 될 필요가 없다 스트림을 사용하면 distinct()
작업의 성능을 크게 향상시킬 수 있습니다.
마찬가지로, groupingBy()
연산의 경우 스트림 순서를 보존해야한다는 요구 사항을 해제하면 병렬 스트림의 경우 작 업 자체의 효율성을 크게 향상시킬 수 있으므로 축소 자체를 동시에 수행 할 수 있습니다. 이것은 콜렉터 또는 스트림 자체가 순서가 지정되지 않은 상태에서 동시 콜렉터가있는 병렬 스트림에서 콜렉션하는 동안에 만 발생합니다. 실질적으로 Stream.collect(groupingBy(..))
대신 Stream.collect(groupingByConcurrent(..))
을 사용해야합니다. 자세한 내용은 javadoc Stream.collect()
및 Collector
을 참조하십시오.