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.
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, …
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 …
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. …
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: …
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 …
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 …
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 …
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 …
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 …
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, …
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 …
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 …
Ich habe folgenden Code: Stream<String> lines = reader.lines(); Wenn die erste Zeichenfolge gleich ist, "email"möchte ich die erste Zeichenfolge aus dem Stream entfernen. Für andere Strings aus dem Stream brauche ich diese Prüfung nicht. Wie könnte ich es erreichen? PS Sicher kann ich es in die Liste umwandeln und dann …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.