J'ai une liste de Integer
list
et de list.stream()
je veux la valeur maximale. Quelle est la manière la plus simple? Ai-je besoin d'un comparateur?
java-8
java-stream
pcbabu
la source
la source
Collections.max
..Réponses:
Vous pouvez soit convertir le flux en
IntStream
:Ou spécifiez le comparateur d'ordre naturel:
Ou utilisez l'opération de réduction:
Ou utilisez le collecteur:
Ou utilisez IntSummaryStatistics:
la source
int
, alorsmapToInt(...).max().getAsInt()
oureduce(...).get()
les chaînes de méthodesla source
Une autre version pourrait être:
la source
Code correct:
ou
la source
Avec stream et réduire
la source
Integer::max
mais c'est exactement la même chose).Vous pouvez également utiliser le code ci-dessous extrait:
Une autre alternative:
la source
la source
Vous pouvez utiliser int max = Stream.of (1,2,3,4,5) .reduce (0, (a, b) -> Math.max (a, b)); fonctionne pour les nombres positifs et négatifs
la source
Integer.MIN_VALUE
le faire fonctionner avec des nombres négatifs.