Als «java-stream» getaggte Fragen

Verwenden Sie dieses Tag für Fragen zur Verwendung der Stream-API. Es wurde in Java 8 eingeführt und unterstützt funktionale Operationen für Werteströme, z. B. Pipelines zum Reduzieren von Filterkarten in Sammlungen.

1
Collectors.toSet () und HashSet
Nehmen Sie die folgende Zeile des Beispielcodes: Set<String> someSet = someColletion.stream().map(p -> p.toString()).collect(Collectors.toSet()); Ich will eine HashSet. Wenn ich einen Debugger zum Code bringe, bekomme ich tatsächlich einen HashSet. Ich habe mir java.util.stream.Collectors.toSet()den folgenden Code angesehen: public static <T> Collector<T, ?, Set<T>> toSet() { return new CollectorImpl<>((Supplier<Set<T>>) HashSet::new, Set::add, (left, …

5
Wie verwandle ich eine Java-Aufzählung in einen Stream?
Ich habe eine Drittanbieter-Bibliothek, die mir eine gibt Enumeration<String>. Ich möchte mit dieser Aufzählung lazily als Java - 8 arbeiten Stream, rufen Dinge wie filter, mapund flatMapauf sie. Gibt es eine vorhandene Bibliothek, in der dies enthalten ist? Ich beziehe mich bereits auf Guava und Apache Commons. Wenn also einer …


3
Zwischenstromoperationen werden nicht nach Anzahl ausgewertet
Es scheint, dass ich Probleme habe zu verstehen, wie Java Stream-Operationen zu einer Stream-Pipeline zusammensetzt. Bei der Ausführung des folgenden Codes public static void main(String[] args) { StringBuilder sb = new StringBuilder(); var count = Stream.of(new String[]{"1", "2", "3", "4"}) .map(sb::append) .count(); System.out.println(count); System.out.println(sb.toString()); } Die Konsole druckt nur 4. …
33 java  java-stream 

2
Wie kann ich den Limit (Nummer) -Anruf mit einem Stream überspringen, wenn die Nummer gleich 0 ist?
Ich habe Java-Code, der Objekte von bereitstellt items. Es begrenzt sie basierend auf maxNumber: items.stream() .map(this::myMapper) .filter(item -> item != null) .limit(maxNumber) .collect(Collectors.toList()); Es funktioniert richtig, aber die Frage ist: Gibt es eine Möglichkeit, die Begrenzung zu überspringen, wenn die maxNumber == 0? Ich weiß, dass ich das tun kann: …


3
Parallele unendliche Java-Streams haben nicht genügend Speicher
Ich versuche zu verstehen, warum das folgende Java-Programm ein gibt OutOfMemoryError, während das entsprechende Programm ohne .parallel()dies nicht tut. System.out.println(Stream .iterate(1, i -> i+1) .parallel() .flatMap(n -> Stream.iterate(n, i -> i+n)) .mapToInt(Integer::intValue) .limit(100_000_000) .sum() ); Ich habe zwei Fragen: Was ist die beabsichtigte Ausgabe dieses Programms? Ohne .parallel()es scheint, dass …

5
Wie erstelle ich eine Karte mit unterschiedlichen Werten aus einer Karte (und verwende den richtigen Schlüssel mit BinaryOperator)?
Ich habe eine Karte Map<K, V>und mein Ziel ist es, die doppelten Werte zu entfernen und dieselbe Struktur Map<K, V>erneut auszugeben . Falls der doppelte Wert gefunden wird, muss kaus den beiden Schlüsseln ( k1und k1), die diese Werte enthalten, ein Schlüssel ( ) ausgewählt werden. Aus diesem Grund wird …

2
Wie verstehe ich diese Java 8 Stream collect () -Methode?
Ich habe versucht, ein int-Array in List zu konvertieren, bin den ungewohnten Weg der Verwendung von Java 8 Stream gegangen und habe mir das ausgedacht Arrays.stream(arr).boxed().collect(Collectors.toList()); Ich habe immer noch Schwierigkeiten, diese Zeile vollständig zu verstehen. Warum wird Collectors.toList()in diesem Fall eine ArrayList<Integer>Implementierungsschnittstelle zurückgegeben List? Warum nicht LinkedList<Integer>oder eine andere …

2
Können Sie einen unsymmetrischen Spliterator unbekannter Größe neu ausbalancieren?
Ich möchte a verwenden, Streamum die Verarbeitung eines heterogenen Satzes von remote gespeicherten JSON-Dateien mit unbekannter Anzahl zu parallelisieren (die Anzahl der Dateien ist im Voraus nicht bekannt). Die Dateien können sehr unterschiedlich groß sein, von 1 JSON-Datensatz pro Datei bis zu 100.000 Datensätzen in einigen anderen Dateien. Ein JSON-Datensatz …

3
Java Parallel Stream - Reihenfolge des Aufrufs der parallel () -Methode [geschlossen]
Geschlossen . Diese Frage muss fokussierter sein . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so, dass sie sich nur auf ein Problem konzentriert, indem Sie diesen Beitrag bearbeiten . Geschlossen vor 4 Tagen . AtomicInteger recordNumber = new AtomicInteger(); Files.lines(inputFile.toPath(), StandardCharsets.UTF_8) .map(record …
11 java  java-stream 

3
Benutzerdefinierte Sortierung so, dass A vor a und B vor b steht
Ich habe eine Liste solcher Farben: Pink, Blau, Rot, Blau, Grau, Grün, Lila, Schwarz ... usw. List<String> listOfColors = Arrays.asList("Pink", "Blue", "Red", "blue", "Grey", "green", "purple", "black"); Es gibt einige Zwischenoperationen wie das Filtern einiger Fruchtfarben. Jetzt habe ich gefilterte Ergebnisse, in denen sie sortiert werden sollen: Blau, Schwarz, Blau, …

2
Bereinigen einer Datenliste in Java8
Zum Bereinigen einer Datenliste habe ich eine Methode erstellt, die die Liste der Daten und die Liste der durchzuführenden Reinigungsvorgänge akzeptiert. public <T> List<T> cleanData(List<T> data, List<Function<T, T>> cleanOps) { List<T>dataNew=data.stream().map((str) -> { T cleanData = str; for(Function<T,T> function:cleanOps) { cleanData=function.apply(cleanData); } return cleanData; }).collect(Collectors.toList()); return dataNew; } Das Problem …

4
Wie peek () und allMatch () in der Java 8 Stream API zusammenarbeiten
Ich habe ein Quiz über die Java 8 Stream API der Peek-Methode wie folgt gefunden Arrays.asList("Fred", "Jim", "Sheila") .stream() .peek(System.out::println) .allMatch(s -> s.startsWith("F")); Die Ausgabe ist Fred Jim Ich bin verwirrt, wie dieser Stream funktioniert? Mein erwartetes Ergebnis sollte sein Fred Jim Sheila Die peek () -Methode ist eine Zwischenoperation …


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.