Heim  >  Artikel  >  Java  >  So verwenden Sie die Stream-Funktion in Java für Stream-Operationen

So verwenden Sie die Stream-Funktion in Java für Stream-Operationen

PHPz
PHPzOriginal
2023-06-26 14:10:111401Durchsuche

Die Stream-Funktion in Java ist eine neue Funktion, die in Java 8 eingeführt wurde. Sie bietet eine völlig neue Möglichkeit, Datensätze wie Sammlungen und Arrays zu verarbeiten. Stream bietet eine funktionale Programmiermethode zum Ausführen von Stream-Operationen und vereinfacht außerdem das Schreiben von Code erheblich. In diesem Artikel erfahren Sie, wie Sie Streaming-Vorgänge mithilfe der Stream-Funktion in Java durchführen.

1. Was ist die Stream-Funktion?

Die Stream-Funktion ist eine neue Funktion, die in Java 8 eingeführt wurde. Es bietet uns eine funktionale Programmiermöglichkeit zur Durchführung von Stream-Operationen, um unseren Code zu vereinfachen. Mit der Stream-Funktion können Elemente in Datenstrukturen wie Sammlungen und Arrays bearbeitet werden, um die von uns benötigten Funktionen zu erreichen.

Die Stream-Funktion verfügt über zwei Betriebsmodi, nämlich Zwischenbetrieb und Abschlussbetrieb. Zwischenvorgänge können mehrmals ausgeführt werden, während Beendigungsvorgänge die Verarbeitung des Streams stoppen und ein Ergebnis oder einen Nebeneffekt zurückgeben. Gleichzeitig verfügt Stream auch über die Fähigkeit zur Parallelverarbeitung.

2. Verwenden Sie die Stream-Funktion für Stream-Operationen

  1. Erstellen Sie einen Stream

Wir können das Stream-Objekt über die stream()-Methode der Sammlung oder die Stream.of()-Methode des Arrays abrufen. Zum Beispiel:

List<Integer> list = Arrays.asList(1, 2, 3);
Stream<Integer> stream1 = list.stream(); // 通过list对象获取stream对象
Stream<Integer> stream2 = Stream.of(1, 2, 3); // 通过Stream.of()方法获取stream对象
  1. Zwischenoperationen

Stream bietet viele Zwischenoperationsmethoden, mit denen Filter-, Mapping-, Slicing- und andere Operationen durchgeführt werden können. Schauen wir uns diese Operationsmethoden einzeln an:

(1) filter()-Methode: Filterelemente

List<Integer> list = Arrays.asList(1, 2, 3, 4);
Stream<Integer> stream = list.stream();
stream.filter(i -> i%2 == 0).forEach(System.out::println); // 输出2和4

(2) map()-Methode: Kartenelemente

List<String> list = Arrays.asList("Java", "Python", "Ruby");
Stream<String> stream = list.stream();
stream.map(String::toLowerCase).forEach(System.out::println); // 输出java, python, ruby

(3) flatMap()-Methode: Reduzieren Sie die flow

List<List<Integer>> list = Arrays.asList(Arrays.asList(1, 2), Arrays.asList(3, 4), Arrays.asList(5, 6));
Stream<List<Integer>> stream = list.stream();
stream.flatMap(Collection::stream).forEach(System.out::println); // 输出1, 2, 3, 4, 5, 6

(4) simply() Methode: Duplikate entfernen

List<Integer> list = Arrays.asList(1, 2, 3, 1, 2, 3);
Stream<Integer> stream = list.stream();
stream.distinct().forEach(System.out::println); // 输出1, 2, 3

(5) sorted() Methode: sort

List<Integer> list = Arrays.asList(3, 2, 1);
Stream<Integer> stream = list.stream();
stream.sorted().forEach(System.out::println); // 输出1, 2, 3

(6) limit() Methode: Anzahl der Elemente begrenzen

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
stream.limit(3).forEach(System.out::println); // 输出1, 2, 3

(7) skip( ) Methode: Element überspringen

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
stream.skip(2).forEach(System.out::println); // 输出3, 4, 5

(8) peek() Methode: Element anhängen

List<Integer> list = Arrays.asList(1, 2, 3);
Stream<Integer> stream1 = list.stream();
Stream<Integer> stream2 = stream1.peek(System.out::println);
stream2.count(); // 输出1, 2, 3
  1. Beendigungsoperation

Stream bietet viele Beendigungsoperationsmethoden, die die Ergebnisse der Stream-Verarbeitung zurückgeben können. Schauen wir uns diese Operationsmethoden einzeln an:

(1) forEach()-Methode: Iteriere die Elemente im Stream

List<Integer> list = Arrays.asList(1, 2, 3);
Stream<Integer> stream = list.stream();
stream.forEach(System.out::println); // 输出1, 2, 3

(2) count()-Methode: Zähle die Anzahl der Elemente

List<Integer> list = Arrays.asList(1, 2, 3);
Stream<Integer> stream = list.stream();
stream.count(); // 输出3

(3) toArray()-Methode: Konvertieren Sie die Elemente im Stream in ein Array.

List<Integer> list = Arrays.asList(1, 2, 3);
Stream<Integer> stream = list.stream();
Object[] array = stream.toArray();
System.out.println(Arrays.toString(array)); // 输出[1, 2, 3]

(4) Reduce()-Methode: Reduzieren Sie die Elemente im Stream

Paralleler Stream-Betrieb

  1. Die Stream-Funktion bietet auch die Funktion des parallelen Stream-Betriebs, und der Stream kann über die Methode parallel () in einen parallelen Stream umgewandelt werden. Parallele Streams können die Rechenleistung von Multi-Core-CPUs voll ausnutzen und die Ausführungseffizienz von Programmen verbessern. Zum Beispiel:
  2. List<Integer> list = Arrays.asList(1, 2, 3);
    Stream<Integer> stream = list.stream();
    int result = stream.reduce(0, (x, y) -> x + y);
    System.out.println(result); // 输出6
3. Zusammenfassung

Die Stream-Funktion ist eine neue Funktion in Java 8, die eine neue Möglichkeit zum Umgang mit Datensätzen wie Sammlungen und Arrays bietet. Durch die Zwischenoperationen und Beendigungsoperationen der Stream-Funktion können wir problemlos filtern, zuordnen, deduplizieren, sortieren, die Anzahl der Elemente begrenzen, Elemente überspringen, Elemente anhängen und andere Vorgänge durchführen. Gleichzeitig können wir durch parallele Stream-Operationen die Rechenleistung von Multi-Core-CPUs voll ausnutzen und die Laufeffizienz des Programms verbessern. Die obige Einführung ist nur ein Teil der Funktionen der Stream-Funktion, die durch die Anwendung verschiedener Betriebsmethoden der Stream-Funktion implementiert werden müssen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Stream-Funktion in Java für Stream-Operationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn