-API für die Verarbeitung eines in SE8 hinzugefügten Datensatzes. Der Hauptzweck ist die Unterstützung der Parallelverarbeitung. Die Verwendung der Stream-API erleichtert den Wechsel von der sequentiellen zur parallelen Verarbeitung.
-Die Schnittstelle unter dem Paket java.util.stream, die sich von dem im Paket java.io verwendeten Stream unterscheidet.
-Das Paket java.util.stream basiert auf der BaseStream-Schnittstelle und besteht aus einer Stream-Schnittstelle zur Behandlung von Referenztypen und drei Schnittstellen zur Behandlung primitiver Typen.
-Stream wird basierend auf einem Datensatz wie List oder Map generiert und das Ergebnis wird durch Ausführen von 0 oder mehr Zwischenoperationen und 1 Beendigungsoperation erhalten.
Java (tm) Platform Standard Edition 8-Paket java.util.stream Einführung in Java Stream API-Basic Grobe Zusammenfassung des Java8-Streams
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
IntStream intStream = IntStream.of(1, 2, 3, 4, 5);
int[] array = { 1, 2, 3, 4, 5 };
IntStream intStream = Arrays.stream(array);
IntStream intStream = IntStream.range(1, 5);
Path path = Paths.get("D:\\hoge.txt");
Stream<String> fileStream = Files.lines(path)
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
stream.forEach(System.out::println);
Erzeugt einen Stream vom Typ Integer und führt die Standardausgabeverarbeitung mit 0 Zwischenoperationen und 1 Beendigungsoperation aus. forEach ist eine Beendigungsoperation. Der Beendigungsvorgang wird später beschrieben. Grundsätzlich wird dies in Kombination mit einer beliebigen Anzahl verschiedener Zwischenoperationen und einer der gleichen verschiedenen Terminierungsoperationen verwendet.
Versuchen Sie, Text in die Java 8 Stream API (Generation) zu streamen
Stream<String> stream = Stream.of("A", "B", "A", "B", "B", "A");
Predicate<String> isA = "A"::equals;
stream.filter(isA).forEach(System.out::println);
Bild der Ausdünnung Falsch mit Prädikattyp isHogeHoge dazwischen.
Prädikat
Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5);
Function<Integer, Integer> toDouble = param -> param * 2;
stream.map(toDouble).forEach(System.out::println);
Gibt einen Stream mit dem entsprechenden Wert zurück, wobei jedes Element des Streams als Schlüssel verwendet wird. Kurz gesagt, es ist wie eine Konvertierungsverarbeitung. Das Beispiel verwendete Funktion zur Verdeutlichung, aber in diesem Fall ist Unary Operator intelligent. Der Lambda-Ausdruck ist wie folgt. Zusammenfassung der Java8-Lambda-Grammatikerweiterung Bis die Implementierung der Schnittstelle zu Lambda wird
Stream<Integer> stream = Stream.of(3, 2, 1, 5, 4);
Comparator<Integer> comparator = Comparator.reverseOrder();
stream.sorted(comparator).forEach(System.out::println);
Geben Sie die Reihenfolge an, indem Sie einen Vergleicher für sortiert angeben. Im Folgenden geht es um den Komparator. (o1, o2) -> o1 --o2 Stoppt Zauber nicht mehr! - Verwendung von Composer in Java 8
Stream<String> stream = Stream.of("George", "John", "Ringo", "Paul");
Predicate<String> isRingo = "Ringo"::equals;
boolean isMatch = stream.anyMatch(isRingo);
Es gibt auch Variationen wie allMatch und noneMatch.
Stream<String> countSt = Stream.of("George", "John", "Ringo", "Paul");
long result = countSt.count();
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
BinaryOperator<Integer> sum = Integer::sum;
Optional<Integer> result = stream.reduce(sum);
Verarbeiten Sie das Ergebnis zu einem einzigen Wert, z. B. Faltung. Der Rückgabewert ist Optional. Das Folgende ist optional. Java 8 "Optional" ~ Wie man in Zukunft mit Null umgeht ~
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
List<Integer> resultList = stream.collect(Collectors.toCollection(ArrayList::new));
resultList.forEach(System.out::print);
In eine Menge wie ArrayList verarbeiten.
Ich habe versucht, den Text in die Java 8-Stream-API zu streamen (Beendigungsoperation) Informationen zur Reduzierung des Java8-Streams
Stream<String> stream= Stream.of("A", "B", "C", "D", "E", "F");
stream.parallel().forEach(param -> System.out.println(param + " thread-id: " + Thread.currentThread().getId()));
Verwenden Sie zum Zeitpunkt der Generierung einfach pararelStream () oder beißen Sie parallel () in der Zwischenoperation, und es wird parallel verarbeitet.
Beginnen wir jetzt mit der parallelen Programmierung Informationen zur ordnungsgemäßen Verwendung von Stream und Parallel Stream in Java 8 Diskussion über Stream und ParallelStream Wie unterschiedlich ist die Leistung jedes Java-Stils? Ich habe die Messungen verglichen. Stream and Loop
Ich kann keine Parallelverarbeitung schreiben, daher werde ich sie nicht eingehend berühren.
Recommended Posts