For people getting into Java 8, jOOL is a great, small library with a &quot;Seq&quot; class that fills in the gaps missing in j.u.stream.Stream:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;jOOQ&#x2F;jOOL" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jOOQ&#x2F;jOOL</a><p>E.g. if you&#x27;re coming from groovy&#x2F;Scala and wonder &quot;why doesn&#x27;t Stream have this method?&quot;, Seq probably either already has it, or the maintainer will be open to adding it for you.<p>So, use jOOL. It&#x27;s great.<p>That said, I still cringe that we have to do &quot;someCollection.stream()...&quot; (or use fill-ins like jOOL) at all, because these methods aren&#x27;t on j.u.List&#x2F;etc. itself...<p>My naive impression is that the JDK designers fixated on making streams support parallelization (because fancy!), and so made some compromises on the API, when in reality 98% of collections are small&#x2F;not parallel, and I assert a non-parallel, more complete API (e.g. more default methods directly on j.u.List&#x2F;j.u.Iterable themselves) would have been a net-win to most programmers.<p>And the parallelized version could be a separate library&#x2F;jar&#x2F;something.