Erste Erfahrung des Streams
Stream ist ein wichtiges Merkmal von Betriebskollektionen in Java 8. Schauen wir uns zunächst an, wie Stream in Java definiert ist:
"Eine Folge von Elementen, die sequentielle und parallele Aggregatoperationen unterstützen."
Lassen Sie uns den obigen Satz interpretieren:
1. Stream ist eine Sammlung von Elementen, die Stream wie Iterator aussehen lässt.
2. Es kann die Operationen der Aggregation des ursprünglichen Streams nach Abfolge und Parallel unterstützen.
Es gibt viele Möglichkeiten, Stream zu erstellen, und es gibt verschiedene andere Möglichkeiten, eine Sammlung zusätzlich zu den häufigsten zu erstellen.
Liste auf Stream
List wird erbt von der Sammlungsschnittstelle, und die Sammlung bietet die Stream () -Methode.
List <Integer> list = lists.NewarrayList (1, 2, 3); Stream <Integer> Stream = list.stream ();
Array zum Streamen
Für Arrays liefert Arrays die Stream () -Methode.
String [] arr = new String [] {"a", "b", "c"}; Stream <string> stream = arrays.stream (arr); Karte zu Stream
MAP ist keine Sequenz, keine Sammlung, und es gibt keine Möglichkeit, sie direkt in Stream () umzuwandeln. Einstieg () wird jedoch eingestellt und kann konvertiert werden.
Map <string, object> map = maps.newhashMap (); Stream <Eintrag <String, Objekt >> Stream = map.EntrySet (). Stream ();
Stream direkt erstellen
Stream bietet auch eine API, um direkt einen Stream zu erzeugen, der grob als Liste verstanden werden kann. Weil der Internal von einem Array implementiert wird.
Stream <Neger> Integerstream = Stream.of (1, 2, 3);
Lesen Sie den Stream der Datei
Diejenigen, die Linux verwendet haben, bewundern die Rohrsymbole auf der Befehlszeile, und ein Rohrsymbol kann kontinuierlich verarbeitet werden. Ähnliche Funktionen können beim Lesen von Dateien in Java implementiert werden.
long uniquewords = 0; try (stream <string> line = files.lines (paths.get ("data.txt"), charset.defaultCharset ()) {uniquewords = line.flatMap (l -> arrays.stream (l.Split (")) .distinct () .Count ();} catch ()} catch ();} catch (); Erzeugen unendlichen Fluss durch Funktionen
Der Stream bietet IT -ITERAT, um eine unendliche Sequenz zu erzeugen, eine unendliche Sequenz, die auf dem Anfangswert basiert. Sie können Lambda verwenden, um die Regeln für die Sequenzgenerierung festzulegen, z. B. jedes Mal 2 hinzuzufügen.
Stream.iterate (0, n -> n + 2) .Limit (10) .foreach (System.out :: println);
Zum Beispiel Fibonacci -Sequenz
Stream.iterate (new int [] {0, 1}, t -> new int [] {t [1], t [0] + t [1]}) .Limit (20) .MAP (t -> t [0]) .foreach (System.out :: println); Stream bietet auch eine andere Generation Methode, um Sequenzen zu generieren. Empfängt eine benutzerdefinierte generierte Sequenzfunktion IntSupplier.
IntSupplier fib = new intSupplier () {private int prise = 0; private int current = 1; @Override public int getaSint () {int oldPrevious = this.Previous; int NextValue = this.Previous + this.current; this.previous = this.current; this.current = NextValue; kehre OldPrevious zurück; }}; Intstream.generate (fib) .Limit (10) .foreach (System.out :: println);Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Referenzwert für das Studium oder die Arbeit eines jeden hat. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen. Vielen Dank für Ihre Unterstützung bei Wulin.com.