Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

133
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda