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.


4
Ausnahmen mit Streams behandeln
Ich habe eine Map<String,List<String>>und möchte, dass daraus wird, Map<String,List<Long>>weil jede Stringin der Liste eine darstellt Long: Map<String,List<String>> input = ...; Map<String,List<Long>> output= input.entrySet() .stream() .collect(toMap(Entry::getKey, e -> e.getValue().stream() .map(Long::valueOf) .collect(toList())) ); Mein Hauptproblem ist, dass jeder Stringmöglicherweise nicht richtig a darstellt Long; Möglicherweise liegt ein Problem vor. Long::valueOfkann Ausnahmen auslösen. …

4
Effiziente Methode zum Iterieren und Kopieren der Werte von HashMap
Ich möchte konvertieren: Map<String, Map<String, List<Map<String, String>>>> inputMap zu: Map<String, Map<String, CustomObject>> customMap inputMapwird in der Konfiguration bereitgestellt und ist bereit, aber ich muss customMapformatieren. CustomObject wird aus der List<Map<String, String>>Verwendung weniger Codezeilen in einer Funktion abgeleitet. Ich habe versucht, die Eingabekarte auf normale Weise zu iterieren und Schlüsselwerte in …

3
Java Stream: Filter mit mehreren Bereichen
Ich versuche, eine Ressource zu filtern und einige Elemente basierend auf einem Feld auszuschließen. Zum Ausschließen habe ich einen Satz (der eine ID enthält, die ausgeschlossen werden muss) und eine Liste (die mehrere Bereiche von IDs enthält, die ausgeschlossen werden müssen). Ich habe die folgende Logik geschrieben und bin mit …

4
Holen Sie sich Mitarbeiter vor und nach einem bestimmten Beitrittsdatum aus der Liste der Mitarbeiter mit Java-Stream
Ich habe Listvon Employees mit unterschiedlichen Beitrittsdaten. Ich möchte Mitarbeiter vor und nach einem bestimmten Beitrittsdatum von der Liste mithilfe von Streams abrufen. Ich habe versucht, folgenden Code, List<Employee> employeeListAfter = employeeList.stream() .filter(e -> e.joiningDate.isAfter(specificDate)) .collect(Collectors.toList()); List<Employee> employeeListBefore = employeeList.stream() .filter(e -> e.joiningDate.isBefore(specificDate)) .collect(Collectors.toList()); class Employee{ int id; String name; …

5
So erstellen Sie mehrere Threads für jedes Anforderungselement
Ich versuche, den folgenden Code mithilfe von Multithreading auf Auftragsebene zu verarbeiten. List<String> orders = Arrays.asList("order1", "order2", "order3", "order4", "order1"); Aktuelle sequentielle Ausführung: orders.stream().forEach(order -> { rules.forEach(rule -> { finalList.add(beanMapper.getBean(rule) .applyRule(createTemplate.apply(getMetaData.apply(rule), command), order)); }); }); Ich habe versucht mit: orders.parallelStream().forEach(order -> {}} // code snippet. Aber es ändert die Regeln …

3
Wie kopiere ich große Datendateien Zeile für Zeile?
Ich habe eine 35 GB CSVDatei. Ich möchte jede Zeile lesen und die Zeile in eine neue CSV schreiben, wenn sie einer Bedingung entspricht. try (BufferedWriter writer = Files.newBufferedWriter(Paths.get("source.csv"))) { try (BufferedReader br = Files.newBufferedReader(Paths.get("target.csv"))) { br.lines().parallel() .filter(line -> StringUtils.isNotBlank(line)) //bit more complex in real world .forEach(line -> { writer.write(line …

3
Standardliste zurückgeben, wenn die Liste mit Java 8 Streams leer ist?
Gibt es eine Möglichkeit, dass das Folgende als ein Satz von Stream-Operationen ausgeführt werden kann, anstatt explizit zu prüfen, ob empfohlene Produkte leer sind, und dann die Standardliste zurückzugeben, andernfalls die gefilterte Liste zurückzugeben ? public List<Product> getRecommendedProducts() { List<Product> recommendedProducts = this.newProducts .stream() .filter(isAvailable) .collect(Collectors.toList()); if (recommendedProducts.isEmpty()) { return …

4
Sortieren Sie Zahlen in einem Array, ohne die Position gerader Zahlen mit Java-8 zu ändern
Ich lerne Java 8-Streams. Sagen Sie mir bitte, wie kann ich eine sortArrayMethode kompakter schreiben ? import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import static org.junit.Assert.assertArrayEquals; public class TestStream { /* * Sort numbers in an array without changing even numbers position */ @Test public void test_1() …

3
Java mit Filterung bei verschiedenen Modellen vor und nach der Projektion
Betrachten Sie das folgende JAVA-Modell für den Ruhezustand : @Entity @Table public class Person { @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long id; @Column public String firstName; @Column public String lastName; @Column public Boolean active; } und das folgende Modell für die API-Serialisierung (unter Verwendung des Spring Boot Rest Controllers): public …

3
Wie konvertiere ich short [] in List <Short> in Java mit Streams?
Ich dachte, ich könnte aus dieser Frage extrapolieren , aber ich kann nicht Das kann ich natürlich short[] shortarray = {0,1,2}; List&lt;Short&gt; shortList = new ArrayList&lt;Short&gt;(); for (Short s : shortarray) { shortList.add(s); } Aber ich frage mich, wie ich das mit Streams machen soll. List&lt;Short&gt; shortList = Arrays.stream(shortarray).boxed() .collect(Collectors.toList()); …

2
Speichern in der Datenbank in der Stream-Pipeline
Gemäß der Dokumentation auf der Oracle-Website : Nebenwirkungen von Verhaltensparametern bei Stream-Vorgängen werden im Allgemeinen nicht empfohlen, da sie häufig zu unwissentlichen Verstößen gegen die Anforderungen an die Staatenlosigkeit sowie zu anderen Sicherheitsrisiken für Threads führen können. Umfasst dies das Speichern von Elementen des Streams in einer Datenbank? Stellen Sie …


4
Sammeln Sie die Ergebnisse einer Kartenoperation in einer Karte mit Collectors.toMap oder groupingBy
Ich habe eine Liste mit Typen List&lt;A&gt;und mit der Kartenoperation eine kollektive Liste mit Typen List&lt;B&gt;für alle A-Elemente, die in einer Liste zusammengeführt sind. List&lt;A&gt; listofA = [A1, A2, A3, A4, A5, ...] List&lt;B&gt; listofB = listofA.stream() .map(a -&gt; repo.getListofB(a)) .flatMap(Collection::stream) .collect(Collectors.toList()); ohne flatmap List&lt;List&lt;B&gt;&gt; listOflistofB = listofA.stream() .map(a -&gt; …
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.