Ich frage mich, warum Java 8 keine Unterstützung für die Verwendung von Datenströmen auf Arrays bietet, wie dies bei Sammlungen der Fall ist. Sie könnenWarum hat Java 8 keine Funktion "myArray.stream()"?
Collection<String> myCollection = new ArrayList<String>();
Stream<String> stream = myCollection.stream();
schreiben, aber man kann nicht schreiben:
String[] myArray = new String[] {};
Stream<String> stream = myArray.stream();
Ich bin mir der Hilfsmethode Arrays.stream
, so kann dies stattdessen verwendet werden:
Stream<String> stream = Arrays.stream(myArray);
Aber es lässt mich Ich frage mich, warum dieser plumpe Aufruf einer statischen Utility-Methode in einem Kontext erforderlich ist, in dem der Lambda-Ausdruck es erlaubt, einfach so viel Code zu schreiben. Mir ist der signifikante Unterschied zwischen der (objekt-/schnittstellenbasierten) Welt von Collection
und der eher "nativen" Welt von array
bekannt.
Wer kann näher darauf eingehen?
Jemand wird besser antworten als ich, aber Arrays sind spezielle Objekt in Java, dies ist nicht von einer bestimmten Klasse/Interface wie 'Collection'. Sie haben nicht 'Array' aber 'String []', das ist spezifisch für Arrays –
AxelH
Warum 'Stream' im Besonderen? Was ist mit anderen Methoden in der 'Collection' Schnittstelle? –