comment trouver la valeur maximale d'un Entier à l'aide de flux en java 8?
J'ai une liste de Integer
list
et de la list.stream()
je veux le maximum de valeur. Quelle est la façon la plus simple? Ai-je besoin de comparaison?
- Lire la javadoc: docs.oracle.com/javase/8/docs/api/java/util/stream/..., docs.oracle.com/javase/8/docs/api/java/util/...
- Vous pouvez avoir vos raisons de l'utilisation d'un Flux, mais n'oubliez pas
Collections.max
..
Vous devez vous connecter pour publier un commentaire.
Vous pouvez convertir le flux de
IntStream
:Ou spécifier l'ordre naturel comparateur:
Ou de l'utilisation de réduire fonctionnement:
Ou de l'utilisation du collecteur:
Ou de l'utilisation IntSummaryStatistics:
int
, puismapToInt(...).max().getAsInt()
oureduce(...).get()
à la méthode des chaînesUne autre version pourrait être:
Code Correct:
ou
Avec flux et de réduire
Integer::max
mais c'est exactement la même).Vous pouvez également utiliser le code ci-dessous ciselée:
Une autre alternative:
Vous pouvez utiliser int max= Stream.de(1,2,3,4,5).réduire(0,(a,b)->Mathématiques.max(a,b));
fonctionne pour les nombres positifs et négatifs
Integer.MIN_VALUE
pour le faire fonctionner avec des nombres négatifs.