なぜJava 8には、コレクションと同じ方法で配列にストリームを使用するサポートが含まれていないのだろうか。あなたはJava 8に「myArray.stream()」関数がないのはなぜですか?
Collection<String> myCollection = new ArrayList<String>();
Stream<String> stream = myCollection.stream();
を書くことができますが、書き込むことはできません。
String[] myArray = new String[] {};
Stream<String> stream = myArray.stream();
私はユーティリティメソッドArrays.stream
の認識していますので、これを代わりに使用することができますされています
Stream<String> stream = Arrays.stream(myArray);
しかし、それは私の葉ラムダ式が単純にそれほどコード化することができない文脈で静的ユーティリティメソッドのこの不器用な呼び出しがなぜ必要であるのかと疑問に思います。私はCollection
の(オブジェクト/インターフェースに基づく)世界とarray
というより多くの "ネイティブ"世界との間の重要な違いを認識しています。
誰がこれについて詳しく説明できますか?あなたの提案に非常に近い
誰かが私よりもうまく答えますが、配列はJavaの特別なObjectです。これは 'Collection'のような特定のClass/Interfaceのものではありません。あなたは 'Array'を持っていませんが、 'String []'はありません。これは配列 –
AxelH
に特有です。特に 'stream'なぜですか? 'Collection'インターフェースの他のメソッドはどうですか? –