Tenho uma lista de Integer
list
e de list.stream()
desejo o valor máximo. Qual é a maneira mais simples? Eu preciso de um comparador?
java-8
java-stream
pcbabu
fonte
fonte
Collections.max
..Respostas:
Você pode converter o stream para
IntStream
:Ou especifique o comparador de ordem natural:
Ou use a operação de redução:
Ou use o coletor:
Ou use IntSummaryStatistics:
fonte
int
, entãomapToInt(...).max().getAsInt()
oureduce(...).get()
para as cadeias de métodosfonte
Outra versão poderia ser:
fonte
Código correto:
ou
fonte
Com fluxo e redução
fonte
Integer::max
mas é exatamente o mesmo).Você também pode usar o código abaixo:
Outra alternativa:
fonte
fonte
Você poderia usar int max = Stream.of (1,2,3,4,5) .reduce (0, (a, b) -> Math.max (a, b)); funciona para números positivos e negativos
fonte
Integer.MIN_VALUE
para fazê-lo funcionar com números negativos.