Questions marquées «java-stream»

Utilisez cette balise pour les questions liées à l'utilisation de l'API Stream. Il a été introduit dans Java 8 et prend en charge les opérations de style fonctionnel sur les flux de valeurs, telles que les pipelines filter-map-reduction sur les collections.

9
Pourquoi Stream <T> n'implémente-t-il pas Iterable <T>?
En Java 8, nous avons la classe Stream &lt;T&gt; , qui a curieusement une méthode Iterator&lt;T&gt; iterator() Vous vous attendez donc à ce qu'il implémente l'interface Iterable &lt;T&gt; , qui nécessite exactement cette méthode, mais ce n'est pas le cas. Quand je veux parcourir un Stream en utilisant une boucle …


7
Ignorer les doublons lors de la production de cartes à l'aide de flux
Map&lt;String, String&gt; phoneBook = people.stream() .collect(toMap(Person::getName, Person::getAddress)); J'obtiens java.lang.IllegalStateException: Duplicate keylorsqu'un élément dupliqué est trouvé. Est-il possible d'ignorer une telle exception lors de l'ajout de valeurs à la carte? Lorsqu'il y a un doublon, il devrait simplement continuer en ignorant cette clé en double.
257 java  java-8  java-stream 

3
Pourquoi Iterable <T> ne fournit-il pas les méthodes stream () et parallelStream ()?
Je me demande pourquoi l' Iterableinterface ne fournit pas les méthodes stream()et parallelStream(). Considérez la classe suivante: 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(); } } Il s'agit d'une implémentation d'une main …

3
Lambdas Java 8, Function.identity () ou t-> t
На этот вопрос есть ответы на Stack Overflow на рurredом : Лямбды в Java 8, что лучше использовать - Function.identity () или t-&gt; t? J'ai une question concernant l'utilisation de la Function.identity()méthode. Imaginez le code suivant: Arrays.asList("a", "b", "c") .stream() .map(Function.identity()) // &lt;- This, .map(str -&gt; str) // &lt;- is …

12
Utilisation de Java 8 en option avec Stream :: flatMap
Le nouveau cadre de flux Java 8 et ses amis créent un code java très concis, mais j'ai rencontré une situation apparemment simple qui est difficile à faire de manière concise. Considérez une List&lt;Thing&gt; thingsméthode et Optional&lt;Other&gt; resolve(Thing thing). Je veux mapper les Things à Optional&lt;Other&gt;s et obtenir le premier …

5
Pourquoi les flux Java sont-ils uniques?
Contrairement à C # IEnumerable, où un pipeline d'exécution peut être exécuté autant de fois que nous le voulons, en Java, un flux ne peut être "itéré" qu'une seule fois. Tout appel à une opération de terminal ferme le flux, le rendant inutilisable. Cette «fonctionnalité» enlève beaucoup de puissance. J'imagine …

4
Flux Java 8: plusieurs filtres vs condition complexe
Parfois, vous souhaitez filtrer un Streamavec plusieurs conditions: myList.stream().filter(x -&gt; x.size() &gt; 10).filter(x -&gt; x.isCool()) ... ou vous pouvez faire de même avec une condition complexe et une seule filter : myList.stream().filter(x -&gt; x.size() &gt; 10 &amp;&amp; x -&gt; x.isCool()) ... Je suppose que la deuxième approche a de meilleures …

19
Filtrer le flux Java sur 1 et 1 seul élément
J'essaie d'utiliser Java 8 Streampour trouver des éléments dans a LinkedList. Je veux cependant garantir qu'il y a une et une seule correspondance avec les critères de filtrage. Prenez ce 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 () et .max () du flux Java 8: pourquoi cela se compile-il?
Remarque: cette question provient d'un lien mort qui était une question SO précédente, mais voici ... Voir ce code ( note: je sais que ce code ne "fonctionnera" pas et qu'il Integer::comparedevrait être utilisé - je viens de l'extraire de la question liée ): final ArrayList &lt;Integer&gt; list = IntStream.rangeClosed(1, …
215 java  java-8  java-stream 

9
Java8: HashMap <X, Y> à HashMap <X, Z> à l'aide de Stream / Map-Reduce / Collector
Je sais comment "transformer" un simple Java à Listpartir de Y-&gt; Z, c'est-à-dire: List&lt;String&gt; x; List&lt;Integer&gt; y = x.stream() .map(s -&gt; Integer.parseInt(s)) .collect(Collectors.toList()); Maintenant, je voudrais faire la même chose avec une carte, c'est-à-dire: INPUT: { "key1" -&gt; "41", // "41" and "42" "key2" -&gt; "42 // are Strings } …


4
Java 8 Stream et fonctionnement sur les tableaux
Je viens de découvrir les nouvelles capacités de flux Java 8. Venant de Python, je me demandais s'il y avait maintenant une façon ordonnée de faire des opérations sur des tableaux comme la sommation, en multipliant deux tableaux d'une manière "pythonique d'une ligne"? Merci


19
Limiter un flux par un prédicat
Existe-t-il une opération de flux Java 8 qui limite un (potentiellement infini) Stream jusqu'à ce que le premier élément ne corresponde pas à un prédicat? En Java 9, nous pouvons utiliser takeWhilecomme dans l'exemple ci-dessous pour imprimer tous les nombres inférieurs à 10. IntStream .iterate(1, n -&gt; n + 1) …
187 java  java-8  java-stream 

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.