[Java] Stream API - Stream-Beendigungsverarbeitung

Stream-Beendigung

Elemente nacheinander verarbeiten

import java.util.stream.Stream;
public class StreamForEach {
  public static void main(String[] args) {
    Stream.of("Munchkin", "Siamese", "Persian", "Tama")
    .forEach(v -> System.out.println(v));
  }
}
import java.util.stream.Stream;
public class Main {
  public static void main(String[] args) {
    Stream.of("Munchkin", "Siamese", "Persian", "Tama")
    .parallel()
    .forEach(v -> System.out.println(v));
    //Persian Tama Siamese Munchkin 
    
    /*Wenn Sie die Bestellung behalten möchten
    .forEachOrdered(v -> System.out.println(v)); 
    Munchkin Siamese Persian Tama
    */
  }
}

Holen Sie sich den ersten Wert

import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {

    var str = Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
        .filter(s -> s.startsWith("S"))
        .findFirst();
      //Wenn die orElse-Methode null ist"-"Ersetzen mit
      System.out.println(str.orElse("-")); //Siamese
  }
}
import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {

    var str = Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
    .parallel()
    .filter(s -> s.startsWith("S"))
    .findAny();
     System.out.println(str.orElse("-")); //Scottish Fold
  }
}

Stellen Sie fest, ob der Wert bestimmte Bedingungen erfüllt

//Überprüfen Sie, ob alle Werte in der Liste 0 oder mehr sind
import java.util.stream.IntStream;

public class StreamMatch {

  public static void main(String[] args) {
    System.out.println(
        IntStream.of(1, 10, 5, -5, 12)
          .allMatch(v -> v >= 0)
      ); //false
  }
}

In Array / Sammlung konvertieren

import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {
    var list = Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
        .filter(s -> s.startsWith("S"))
        .toArray();
    System.out.println(list[0]); //Siamese
  }
}
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class StreamTrans2 {

  public static void main(String[] args) {
    var list = Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
        .filter(s -> s.startsWith("S"))
        .collect(Collectors.toList());
    System.out.println(list);
  }
}
//Benennen Sie das Personenobjektarray:In das Kartenformat der E-Mail-Adresse konvertieren
public class StreamCollectMap {

  public static void main(String[] args) {
    System.out.println(
        Stream.of(
          new Person("Yamada Taro", "[email protected]"),
          new Person("Hanako Suzuki", "[email protected]"),
          new Person("Saburo Inoue", "[email protected]"),
          new Person("Kumi Sato", "[email protected]"),
          new Person("Yamada Taro", "[email protected]")
        ).collect(Collectors.toMap(
          //Der Argumentschlüssel repräsentiert den Schlüssel der Karte
          Person::getName,
          //Der Argumentwert repräsentiert den Schlüssel der Karte
          Person::getEmail,
          //Wenn die Möglichkeit einer Vervielfältigung besteht
          (s, a) -> s + "/" + a
          //Wert beim Duplizieren überschreiben
          // (s, a) ->  a
        ))
      );
  }
}
public class Person {
  private String name;
  private String email;
  public Person(String name, String email) {
    this.name = name;
    this.email = email;
  }
  public String getName() {
    return name;
  }
  public String getEmail() {
    return email;
  }
}

Finden Sie das Maximum und das Minimum

import java.util.Comparator;
import java.util.stream.Stream;

public class StreamMin {

  public static void main(String[] args) {
    var str = Stream.of("Mebaru", "Sanma", "Inspiration", "Iwashi", "Hokke")
        .min(Comparator.naturalOrder());
      System.out.println(str.orElse("")); //Iwashi
  }
}

Finden Sie die Anzahl der Elemente

//Finden Sie die Anzahl der Zeichenfolgen, die größer als die Zeichenfolgenlänge 3 sind.
import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {
    System.out.println(
    Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
      .filter(s -> s.length() > 7)
      .count() //2
    );
  }
}

Finden Sie den Gesamt- / Durchschnittswert

//Int Array Summe, Durchschnitt
import java.util.stream.IntStream;

public class StreamSum {

  public static void main(String[] args) {
    var list = new int[] { 5, 1, 10, -3 };
    System.out.println(IntStream.of(list).sum()); //13
    System.out.println(IntStream.of(list).average().orElse(0)); //3.25
  }
}

Kombinieren Sie Stream-Werte zu einem

Mit einem Argument:

//Gruppieren Sie Zeichenfolgenströme, die durch Kommas getrennt sind
import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {

    System.out.println(
      Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
        .sorted()
        .reduce((result, str) -> {
          return result + "," + str;
        })
        .orElse("") //Munchkin,Persian,Scottish Fold,Siamese,Tama
    );
  }
}

Mit 2 Argumenten:

import java.util.stream.Stream;
public class StreamReduce2 {
  public static void main(String[] args) {
    System.out.println(
      Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
        .sorted()
        // .parallel()
        .reduce("Himalayan", (result, str) -> {
          return result + "," + str;
        })
    ); //Himalayan,Munchkin,Persian,Scottish Fold,Siamese,Tama
  }
}

Mit 3 Argumenten:

import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {
    System.out.println(
      Stream.of("153", "211", "112", "350", "418", "208")
        .parallel()
        .reduce(0,
          //Holen Sie sich einzelne Elemente
          //Das Operationsergebnis wird im Ergebnis gespeichert und der Wert empfängt jedes Element.
          (result, value) -> {
            return result + Integer.parseInt(value); //Konvertieren Sie den Zeichenfolgenwert in eine Zahl
          },
          //Fassen Sie die verteilten Ergebnisse zusammen(Nur paralleler Stream)
          (result1, result2) -> {
            return result1 + result2; //1452
          }
      )
    );
  }
}

Sammle Stream-Elemente in einer Sammlung (1)

//Sortiert einen bestimmten String-Stream und konvertiert ihn in eine Liste
import java.util.ArrayList;
import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {
    System.out.println(
      Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama"
        .sorted()
        .collect(
          //Erstellung eines Containers, der den Wert im ersten Wert der Reduzierung um die Anzahl der Ausdrücke speichert
          ArrayList<String>::new,
          //Argumente sind Container, einzelne Elemente
          (list, str) -> list.add(str),
          //Für parallele Streams
          (list1, list2) -> list1.addAll(list2)
        )
    );
  }
}

Sammle Stream-Elemente in einer Sammlung (2)

import java.util.ArrayList;
//import java.util.Arrays;
import java.util.stream.Collector;
import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {
    System.out.println(
      Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
        .sorted()
        .collect(
          Collector.of(
            ArrayList::new,
            ArrayList::add,
            (list1, list2) -> {
              list1.addAll(list2);
              return list1;
            },
            Collector.Characteristics.IDENTITY_FINISH
          )
        )
    );
  }
}

Standardkollektor

** Verbindungsmethode **

import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {

  public static void main(String[] args) {
    System.out.println(
        Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
          .sorted()
          .collect(Collectors.joining(",", "<", ">")) //<Munchkin,Persian,Scottish Fold,Siamese,Tama>
      );
  }
}

** groupingBy Methode **

//Kategorisieren Sie Zeichenfolgen nach Länge
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {

  public static void main(String[] args) {
    System.out.println(
        Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
          .sorted()
          .collect(
          //Empfangen Sie den Elementtyp mit dem Argument str und generieren Sie den Gruppierungsschlüssel
          //Nach Zeichenfolge gruppieren
            Collectors.groupingBy(str -> str.length()
          )) //{4=[Tama], 7=[Persian, Siamese], 8=[Munchkin], 13=[Scottish Fold]}
      );
  }
}
public class Main {

  public static void main(String[] args) {
      
    System.out.println(
        Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
          .sorted()
          .collect(
            Collectors.groupingBy(
              str -> str.length(),
              Collectors.joining("/") //{4=Tama, 7=Persian/Siamese, 8=Munchkin, 13=Scottish Fold}
          ))
      );
  }
}

** partitioningBy Methode **

//Teilen Sie durch, ob die Zeichenfolge 7 Zeichen oder weniger oder lang ist
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {

  public static void main(String[] args) {
      
    System.out.println(
        Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
          .sorted()
          .collect(
            Collectors.partitioningBy(
              str -> str.length() > 7
          ) //{false=[Persian, Siamese, Tama], true=[Munchkin, Scottish Fold]}
        )
      );
  }
}

** collectAndThen Methode **

//Listen Sie Streams mit der toList-Methode auf
//Collections::Mit unmodifizierbarer Liste in schreibgeschützt konvertieren

import java.util.Collections;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {

  public static void main(String[] args) {
    System.out.println(
        Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
          .sorted()
          .collect(
            Collectors.collectingAndThen(
              Collectors.toList(),
              Collections::unmodifiableList
            )
          )
      );
  }
}

** IntSummaryStatistics Klasse **

import java.util.IntSummaryStatistics;
import java.util.stream.IntStream;

public class Main {

  public static void main(String[] args) {
    var summary = IntStream.of(5, 13, 7, 2, 30)
      .collect(
     //Übergeben Sie im Konstruktor einen Verweis auf parseInt sod, accept, combinDB
        IntSummaryStatistics::new,
        IntSummaryStatistics::accept,
        IntSummaryStatistics::combine
      );
    System.out.println(summary.getMin()); //2
    System.out.println(summary.getSum()); //57
    System.out.println(summary.getAverage()); //11.4
  }
}

Recommended Posts

[Java] Stream API - Stream-Beendigungsverarbeitung
[Java] Stream API - Stream Zwischenverarbeitung
Java Stream API
Java Stream-Beendigung
[Java] Stream-Verarbeitung
Datenverarbeitung mit der Stream-API von Java 8
[Java] Stream API / Map
Java Stream API Spickzettel
[Java] Einführung in die Stream-API
[Java] Stream API Zwischenoperation
Stream-Beendigungsprozess
[java8] Um die Stream-API zu verstehen
[Einführung in Java] Informationen zur Stream-API
Ich habe versucht, die Java8 Stream API zu verwenden
Grundlegender Verarbeitungsablauf von Java Stream
Java 8 ~ Stream API ~ startet jetzt
Versuchen Sie es mit der Stream-API in Java
Probieren Sie Java 8 Stream aus
Heutzutage Java Lambda Expressions und Stream API
Java-Thread-Verarbeitung
Probieren Sie verschiedene Java Stream API-Methoden aus (jetzt)
Java-String-Verarbeitung
Java 8 studieren (Stream)
[Java] Multithread-Verarbeitung
Zwischenverarbeitung streamen
Grundlagen der Stream-API
Java 9 Optional :: stream
Java iterativer Prozess
[Java] Stream Collectors Hinweis
Packen Sie die API-Antwort (Java)
[Java] Stream API-Stream-Generierung
Stream-API (Collectors-Klasse)
Stream-API-Zuordnungsmethode
Fehlerbehebung bei der Docker-Client Java API
Zabbix API in Java
Informationen zur Java8-Stream-Reduzierung
JAVA-Konstruktoraufrufverarbeitung
Java zufällig, verschiedene Verarbeitung
Grobe Zusammenfassung des Java8-Streams
Listenverarbeitung zum Verstehen mit Bildern --java8 stream / javaslang-
[Inhouse-Lernsitzung] Java-Grundlagen - Lambda-Ausdruck und Stream-API - (13.07.2017)
[Für Anfänger] So bedienen Sie die Stream-API nach Java 8
Verwenden Sie Java-Lambda-Ausdrücke außerhalb der Stream-API
Die Java 8 Stream-Verarbeitung kann bisher weggelassen werden!
Informationen zur Implementierung der Zusammenführungsverarbeitung einschließlich der Sortierfunktion der Stream-API
[Java11] Stream-Zusammenfassung - Vorteile von Stream -
[Ein Muss für einen Java-Ingenieurlehrling] Verwendung der Stream-API
Behandeln Sie Ausnahmen kühl mit Java 8-Lambda-Ausdrücken und der Stream-API
[Java] Implementierungsmethode für die Timer-Verarbeitung
Java Stream kann nicht wiederverwendet werden.
Gemessene Parallelverarbeitung mit Java
Listenverarbeitung zum Verstehen mit Bildern --java8 stream / javaslang --bonus
Grundlegendes zur Java-Parallelverarbeitung (Einführung)
[Java11] Stream Usage Summary -Basics-
Konvertieren Sie ein zweidimensionales Array mit der Java 8 Stream-API in das CSV-Format
Java Basic Learning Content 8 (Java-API)
Java-Anwendung für Anfänger: Stream
Zusammenfassung der Java-Fehlerverarbeitung