Articles of java stream

Invierta un comparador en Java 8

Tengo una ArrayList y quiero ordenarla en orden descendente. Yo uso para él el método java.util.stream.Stream.sorted(Comparator) . Aquí hay una descripción según Java API: Devuelve una secuencia que consta de los elementos de esta secuencia, ordenados según el Comparator proporcionado. estos métodos me devuelven un orden con orden ascendente. ¿Qué parámetro debería cambiar, solo para […]

Producto cartesiano de streams en Java 8 como stream (usando solo streams)

Me gustaría crear un método que cree una secuencia de elementos que sean productos cartesianos de múltiples flujos determinados (agregados al mismo tipo al final por un operador binario). Tenga en cuenta que tanto los argumentos como los resultados son secuencias, no colecciones. Por ejemplo, para dos flujos de {A, B} y {X, Y} me […]

¿Hay una buena manera de extraer trozos de datos de una secuencia Java 8?

I un proceso de ETL Estoy recuperando muchas entidades de un Repositorio de datos de spring. Entonces estoy usando un flujo paralelo para mapear las entidades a diferentes. Puedo usar un consumidor para almacenar esas entidades nuevas en otro repository, una por una, o recostackrlas en una lista y almacenarlas en una única operación masiva. […]

Java8: sum los valores del campo específico de los objetos en una lista

Supongamos que tiene una clase Obj class Obj{ int field; } y que tiene una lista de instancias Obj , es decir, List lst . Ahora, ¿cómo puedo encontrar en Java8 con streams la sum de los valores del field int fields de los objetos en la lista lst bajo un criterio de filtrado (por […]

Lista de Java 8 lambdas group en el mapa

Quiero tomar una List y return un Map<String, List> donde la clave del Map es un valor de String en Pojo , llamémoslo String key . Para aclarar, dado lo siguiente: Pojo 1: Clave: un valor: 1 Pojo 2: Clave: un valor: 2 Pojo 3: Clave: valor b: 3 Pojo 4: Clave: valor b: 4 […]

¿Por qué Stream no tiene un método toList ()?

Al usar las secuencias de Java 8, es bastante común tomar una lista, crear una transmisión desde allí, hacer negocios y convertirla de nuevo. Algo como: Stream.of(-2,1,2,-5) .filter(n -> n > 0) .map(n -> n * n) .collect(Collectors.toList()); ¿Por qué no hay un método abreviado / conveniente para la parte ‘ .collect(Collectors.toList()) ‘? En la […]

Java8 secuencias secuencial y ejecución en paralelo producen resultados diferentes?

Ejecutando el siguiente ejemplo de flujo en Java8: System.out.println(Stream .of(“a”, “b”, “c”, “d”, “e”, “f”) .reduce(“”, (s1, s2) -> s1 + “/” + s2) ); rendimientos: /a/b/c/d/e/f Que es, por supuesto, no es sorpresa. Debido a http://docs.oracle.com/javase/8/docs/api/index.html?overview-summary.html, no debería importar si la secuencia se ejecuta de forma secuencial o paralela: Excepto para las operaciones identificadas […]

¿Por qué la secuencia paralela no usa todos los hilos de ForkJoinPool?

Así que sé que si usa parallelStream sin una ForkJoinPool personalizada, utilizará ForkJoinPool por defecto, que tiene un subproceso menos por defecto, ya que tiene procesadores. Entonces, como se establece aquí (y también en la otra respuesta a esa pregunta) para tener más paralelismo, tienes que: envíe la ejecución de secuencia paralela a su propia […]

Agrupar por y sumr objetos como en SQL con Java lambdas?

Tengo una clase Foo con estos campos: id: int / name; String / targetCost: BigDecimal / actualCost: BigDecimal Obtengo una lista de objetos de esta clase. p.ej: new Foo(1, “P1”, 300, 400), new Foo(2, “P2”, 600, 400), new Foo(3, “P3”, 30, 20), new Foo(3, “P3”, 70, 20), new Foo(1, “P1”, 360, 40), new Foo(4, “P4”, […]

Ignorar duplicados cuando se produce un mapa utilizando flujos

Map phoneBook=people.stream() .collect(toMap(Person::getName, Person::getAddress)); Recibo una excepción de clave duplicada cuando se producen duplicados. ¿Es posible ignorar para agregar los valores al mapa cuando se producen los duplicados? Cuando hay duplicado, simplemente debe continuar ignorando esa clave duplicada.