Ich habe auf Java 8 Streams und die Art und Weise, wie Daten aus einer Datenquelle gestreamt werden, gelesen, anstatt die gesamte Sammlung aus Daten extrahieren zu müssen.Java 8 Stream vs Collection Speicher
Dieses Zitat insbesondere ich auf einen Artikel über Ströme in Java lesen 8.
„Keine Speicher Streams haben keine Speicher für Werte;. Sie tragen Werte von einer Quelle (die eine Datenstruktur sein könnte, eine Erzeugungsfunktion, ein I/O-Kanal usw.) durch eine Pipeline von Rechenschritten. " Von der Quelle: http://www.drdobbs.com/jvm/lambdas-and-streams-in-java-8-libraries/240166818?pgno=1
verstehe ich das Konzept der Streaming-Daten in von einer Quelle Stück für Stück. Was ich nicht verstehe ist, wenn Sie aus einer Sammlung streamen, wie ist kein Speicher? Die Sammlung existiert bereits auf dem Heap, Sie streamen nur die Daten aus dieser Sammlung, die Sammlung existiert bereits im "Speicher".
Was ist der Unterschied Memory-Footprint weise, wenn ich nur die Sammlung mit einem Standard für Schleife durchlaufen würde?
Danke für die Antwort! Ich verstehe den Daten-Streaming-Teil, aber was ist der Speicher- (Speicher-) Overhead, wenn ich die Sammlung direkt verwenden möchte, anstatt sie zu streamen? Wenn ich die Sammlung direkt verwende, greife ich auf die Sammlung auf dem Heap zu, wenn ich sie streame, streame ich immer noch die Daten aus der Sammlung, die sich auf dem Heap befindet. In beiden Fällen bleibt der Speicher-Footprint in beiden Methoden gleich. Bitte korrigieren Sie mich, wenn ich falsch liege/etwas hier vermisse. – user3587411
@ user3587411: Es gibt im Wesentlichen keinen Unterschied. Ein Weg könnte ein paar mehr Stapelrahmen und temporäre Objekte verwenden, aber das sind nur ein paar Bytes. – user2357112
* "In beiden Fällen bleibt der Speicher-Footprint gleich." * Der Zweck eines Streams besteht nicht darin, Speicher zu sparen. – Radiodef