Herosław Miraszewski :
그것은 자바가 있는지 확인하는 것이 가능 Stream
주문이나되지?
정렬되지 않은함으로써 Stream
I의 평균 예를 들어 스트림있는 unordered()
불렸다.
Lyashko 키릴 :
스트림 당신이 스트림의 spliterator 및 테스트의 특성을 얻을 필요가 정렬되지 않은 경우 확인하기 위해 제 3 회 비트가 하나로 설정된다.
당신은 예를 들어,이 코드를 사용할 수 있습니다 :
Stream<Integer> sorted = Stream.of(1, 2, 3).sorted();
System.out.println((sorted.spliterator().hasCharacteristics(Spliterator.SORTED));
sorted = Stream.of(1, 2, 3).sorted().unordered();
System.out.println((sorted.spliterator().hasCharacteristics(Spliterator.SORTED));
Stream<Integer> unordered = Stream.of(1, 2, 3).unordered();
System.out.println((unordered.spliterator().hasCharacteristics(Spliterator.SORTED));
unordered = Stream.of(1, 2, 3);
System.out.println((unordered.spliterator().hasCharacteristics(Spliterator.SORTED));
자세한 내용은 확인할 수 있습니다 Spliterator 문서를 .
UPDATE : 그러나의 호출은 spliterator()
더 이상의 동작이 수행되지 될 수 있음을 의미 어떤 스트림에서 단말기 동작이다. 요소가도 소모됩니다에도 불구하고, 무슨 방법으로 동일한 특성을 가진 새로운 스트림을 생성하는 것을 가능하게한다 :
Spliterator<Integer> spliterator = unordered.spliterator();
System.out.println(spliterator.hasCharacteristics(Spliterator.SORTED));
Stream<Integer> newStream = StreamSupport.stream(spliterator, unordered.isParallel())
.onClose(unordered::close); // in case if you have some close handlers on initial stream
마지막 순간을 가리키는 주셔서 감사합니다 @Holger.