Ich habe Code mit Java8:
%Vor%Ursprüngliche Liste ist [3, 5, 4, 2, 5]. Nach der Operation "Filter" und "Sammeln" ändert sich die Liste zu [3, 5, 4, 5].
Erfolgen alle Vorgänge auf der ursprünglichen Liste und wird keine neue Liste erstellt? Oder nach "Filter" und "Sammeln" -Operation, eine neu erstellte Liste zurückgeben und Originalliste ignorieren?
Wenn Sie die ursprüngliche Liste tatsächlich ändern möchten, sollten Sie removeIf
:
Stream-Vorgänge sind entweder intermediär oder terminal. Zwischenoperationen geben einen Stream zurück, sodass Sie mehrere Zwischenoperationen verketten können. Terminal -Operationen geben void oder etwas anderes zurück.
Die meisten Stream-Vorgänge stören nicht, dh sie ändern nicht die Datenquelle des Streams.
Aber indem Sie die Methode collect
aufrufen, erstellen Sie eine neue Liste und weisen sie list
Mit Hilfe der Guava Lists.transform () -Funktion können Sie nachvollziehen, warum eine neue Liste generiert werden muss. Vor JDK 7 wird dringend empfohlen, die Funktion "Lists.transform ()" zu implementieren.
Tags und Links java java-8 list java-stream