While doing stream operations, during the intermediate/pipeline operations the streams would be created with different characteristics(e.g: SORTED/SIZED/DISTINCT/ORDERED) - Mast
At each stage you can call:
int c = stream.spliterator().characteristics();
And then test the result against the constants defined in the Spliterator class. For example to see if the stream is ordered:
boolean isOrdered = (c & Spliterator.ORDERED) == Spliterator.ORDERED;
Alternatively you can use:
boolean isOrdered = stream.spliterator().hasCharacteristics(Spliterator.ORDERED);