私は最近 Java 8 の Stream API を使い始めましたが、これは Java への大きな貢献だと思います。しかし、なぜこのように実装されたのかわかりません。
Java 8 のその他の最も優れた機能の 1 つは、インターフェースのデフォルト メソッドです。これにより、インターフェースにデフォルトの実装を持たせることができます。これらを使用すると、下位互換性を保ちながら、ストリーム API を介して提供されるすべてのメソッドとデフォルトの実装を Collection インターフェイスに与えることができます。.NET の LINQ に似た、より単純な構文が可能になるだけでなく、型を実装してこれらのメソッドの動作をオーバーライドすることもできます。毎回 stream() メソッドを呼び出す必要がなくなり、常に collect() メソッドを使用する必要がなくなります。
これは非常に一般的な質問であることは承知していますが、Java 8 の開発者が非常に残念な選択をしたように思われ、修正するのは非常に困難です。