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.

9
Warum implementiert Stream <T> Iterable <T> nicht?
In Java 8 haben wir die Klasse Stream &lt;T&gt; , die seltsamerweise eine Methode hat Iterator&lt;T&gt; iterator() Sie würden also erwarten, dass die Schnittstelle Iterable &lt;T&gt; implementiert wird , was genau diese Methode erfordert, aber das ist nicht der Fall. Wenn ich mit einer foreach-Schleife über einen Stream iterieren möchte, …


7
Ignorieren Sie Duplikate, wenn Sie eine Karte mit Streams erstellen
Map&lt;String, String&gt; phoneBook = people.stream() .collect(toMap(Person::getName, Person::getAddress)); Ich bekomme, java.lang.IllegalStateException: Duplicate keywenn ein dupliziertes Element gefunden wird. Ist es möglich, eine solche Ausnahme beim Hinzufügen von Werten zur Karte zu ignorieren? Wenn es ein Duplikat gibt, sollte es einfach fortgesetzt werden, indem dieser doppelte Schlüssel ignoriert wird.
257 java  java-8  java-stream 

3
Warum bietet Iterable <T> keine stream () - und parallelStream () -Methoden an?
Ich frage mich, warum die IterableSchnittstelle die stream()und parallelStream()Methoden nicht bereitstellt . Betrachten Sie die folgende Klasse: public class Hand implements Iterable&lt;Card&gt; { private final List&lt;Card&gt; list = new ArrayList&lt;&gt;(); private final int capacity; //... @Override public Iterator&lt;Card&gt; iterator() { return list.iterator(); } } Es ist eine Implementierung einer Hand, …

3
Java 8 Lambdas, Function.identity () oder t-> t
Overа этот вопрос есть ответы на Stapelüberlauf на русском : Лямбды в Java 8, что лучше использовать - Function.identity () или t-&gt; t? Ich habe eine Frage zur Verwendung der Function.identity()Methode. Stellen Sie sich den folgenden Code vor: Arrays.asList("a", "b", "c") .stream() .map(Function.identity()) // &lt;- This, .map(str -&gt; str) // …

5
Warum sind Java Streams einmalig?
Im Gegensatz zu C # IEnumerable, bei denen eine Ausführungspipeline so oft ausgeführt werden kann, wie wir möchten, kann ein Stream in Java nur einmal "iteriert" werden. Jeder Aufruf einer Terminaloperation schließt den Stream und macht ihn unbrauchbar. Diese 'Funktion' nimmt viel Energie weg. Ich stelle mir vor, der Grund …

12
Optionale Verwendung von Java 8 mit Stream :: flatMap
Das neue Java 8-Stream-Framework und seine Freunde sorgen für einen sehr präzisen Java-Code, aber ich bin auf eine scheinbar einfache Situation gestoßen, die schwierig zu formulieren ist. Betrachten Sie eine List&lt;Thing&gt; thingsund Methode Optional&lt;Other&gt; resolve(Thing thing). Ich möchte das Things auf Optional&lt;Other&gt;s abbilden und das erste bekommen Other. Die naheliegende …

4
Java 8-Streams: Mehrere Filter im Vergleich zu komplexen Bedingungen
Manchmal möchten Sie a Streammit mehr als einer Bedingung filtern : myList.stream().filter(x -&gt; x.size() &gt; 10).filter(x -&gt; x.isCool()) ... oder Sie könnten dasselbe mit einer komplexen Bedingung und einer einzigen tun filter: myList.stream().filter(x -&gt; x.size() &gt; 10 &amp;&amp; x -&gt; x.isCool()) ... Ich vermute, dass der zweite Ansatz bessere Leistungseigenschaften …

19
Filtern Sie Java Stream auf 1 und nur 1 Element
Ich versuche Java 8 Streams zu verwenden, um Elemente in a zu finden LinkedList. Ich möchte jedoch garantieren, dass es nur eine Übereinstimmung mit den Filterkriterien gibt. Nehmen Sie diesen Code: public static void main(String[] args) { LinkedList&lt;User&gt; users = new LinkedList&lt;&gt;(); users.add(new User(1, "User1")); users.add(new User(2, "User2")); users.add(new User(3, …

5
.Min () und .max () des Java 8-Streams: Warum wird dies kompiliert?
Hinweis: Diese Frage stammt von einem toten Link, der eine vorherige SO-Frage war, aber hier geht ... Siehe diesen Code ( Hinweis: Ich weiß, dass dieser Code nicht "funktioniert" und Integer::compareverwendet werden sollte - ich habe ihn gerade aus der verknüpften Frage extrahiert ): final ArrayList &lt;Integer&gt; list = IntStream.rangeClosed(1, …
215 java  java-8  java-stream 



4
Java 8 Stream und Betrieb auf Arrays
Ich habe gerade die neuen Java 8-Stream-Funktionen entdeckt. Als ich aus Python kam, fragte ich mich, ob es jetzt eine gute Möglichkeit gibt, Operationen an Arrays wie Summieren durchzuführen und zwei Arrays auf eine "einzeilige pythonische" Weise zu multiplizieren. Vielen Dank


19
Begrenzen Sie einen Stream durch ein Prädikat
Gibt es eine Java 8-Stream-Operation, die a (möglicherweise unendlich) begrenzt, Streambis das erste Element nicht mehr mit einem Prädikat übereinstimmt? In Java 9 können wir takeWhilewie im folgenden Beispiel alle Zahlen unter 10 drucken. IntStream .iterate(1, n -&gt; n + 1) .takeWhile(n -&gt; n &lt; 10) .forEach(System.out::println); Da es in …
187 java  java-8  java-stream 

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.