Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

136
Visualizações
¿Cree una lista de enteros aleatorios usando Stream y sume todos los elementos excepto el más pequeño?

Quiero generar 4 números aleatorios, del 1 al 6 inclusive. Luego quiero obtener la suma de estos elementos excluyendo el valor más pequeño.

Actualmente estoy creando una secuencia para completar una lista:

 List<Integer> values = r.ints(4,1,7).boxed().collect(Collectors.toList())

Luego elimino el valor más pequeño y uso otra secuencia para obtener la suma de los valores:

 values.stream().mapToInt(Integer::intValue).sum();

¿Alguien puede sugerir una forma de realizar todas estas operaciones en una sola secuencia?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Ordene la secuencia, luego omita el primer elemento (es decir, el más pequeño):

 int sumExceptSmallest = IntStream.of(4,1,7).sorted().skip(1).sum(); // 11

o en su caso específico:

 int sumExceptSmallest = r.ints(4,1,7).sorted().skip(1).sum();

Tenga en cuenta que si bien esto puede ser lo mejor y lo más eficiente para el codificador , no es la solución más eficiente posible porque la clasificación tiene una complejidad de tiempo de O (n log n). El tiempo de ejecución más eficiente sería un solo paso para encontrar el más pequeño y calcular la suma, luego restar uno del otro, dando la solución en O(n) tiempo.

over 4 years ago · Santiago Trujillo Relatório

0

El uso de IntSummaryStatistics puede calcular esto en su transmisión con un solo paso:

 IntStream stream = /* random stream of integers */; IntSummaryStatistics stats = stream.summaryStatistics(); int sum = stats.sum(); sum -= stats.min(); //sum, minus the lowest element
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda