If an interface provides a default implementation for a method, implementations in classes always take precedence. That's why in an interface, you can't give default implementations for methods that are also declared in Object: their implementation would always be overridden by the implementation given by Object, and therefore useless.
Lambda expressions create an object that inherits from the Object class, so it also inherits the implementations of the methods declared in Object.
Functional interfaces are allowed to redeclare the methods that were already declared in Object and the effect will be the same as if they weren't declared at all.
You'll notice when you read the JavaDoc that Comparator.equals() has a more specific description than Object.equals().
It might be better to say you are completing the pipeline. Just as whenever I am trying to lead water around the house in copper pipelines, I am not going to turn the water on at the source until I am confident I have connected the other end. When you build a Sahara Pipeline to carry oil across the desert, you don't turn the oil supply on until you are sure the other end is connected correctly.
JShell doesn't help by calling toString() on your Stream objects.
...but it is only worth creating parallel Streams when there is a lot of work to be done. And those Streams are not called sequential.
...it is a bit of confusing information JShell has given you.
...Start small and simple.
Streams do not “have” elements; they process them.
Also, Streams implement lazy execution; an element is only taken by the first Stream when the terminal operation requires it.