Articles of java stream

Agregando BigDecimales usando Streams

Tengo una colección de BigDecimals (en este ejemplo, una LinkedList ) que me gustaría agregar juntos. ¿Es posible usar transmisiones para esto? Noté que la clase Stream tiene varios métodos Stream::mapToInt Stream::mapToDouble Stream::mapToLong Cada uno de los cuales tiene un método conveniente de sum() . Pero, como sabemos, la aritmética float y double casi siempre […]

¿Cómo sumr una lista de enteros con flujos de Java?

Quiero sumr una lista de enteros. Funciona de la siguiente manera, pero la syntax no se siente bien. ¿Podría optimizarse el código? Map integers; integers.values().stream().mapToInt(i -> i).sum();

Un mejor enfoque para manejar excepciones de una manera funcional

Las excepciones, especialmente las comprobadas, pueden interrumpir gravemente el flujo de la lógica del progtwig cuando se utiliza el modificador FP en Java 8. Aquí hay un ejemplo arbitrario: String s1 = “oeu”, s2 = “2”; Stream.of(s1, s2).forEach(s -> System.out.println(Optional.of(s).map(Integer::parseInt).get())); El código anterior se rompe cuando hay una excepción para una cadena no dispersable. Pero […]

Filtre Java Stream a 1 y solo 1 elemento

Estoy tratando de usar Java 8 Stream para encontrar elementos en LinkedList . Sin embargo, quiero garantizar que haya una y única coincidencia con los criterios de filtro. Toma este código: public static void main(String[] args) { LinkedList users = new LinkedList(); users.add(new User(1, “User1”)); users.add(new User(2, “User2”)); users.add(new User(3, “User3”)); User match = users.stream().filter((user) […]

Agrupar por valor de objeto, contar y luego establecer la clave de grupo por atributo de objeto máximo

He logrado escribir una solución usando Java 8 Streams API que primero agrupa una lista del objeto Ruta por su valor y luego cuenta el número de objetos en cada grupo. Devuelve una ruta de mapeo -> Largo. Aquí está el código: Map routesCounted = routes.stream() .collect(Collectors.groupingBy(gr -> gr, Collectors.counting())); Y la clase de ruta: […]

¿Cómo guardo el orden de iteración de una lista cuando uso Collections.toMap () en una secuencia?

Estoy creando un Map partir de una List siguiente manera: List strings = Arrays.asList(“a”, “bb”, “ccc”); Map map = strings.stream() .collect(Collectors.toMap(Function.identity(), String::length)); Quiero mantener el mismo orden de iteración que estaba en la List . ¿Cómo puedo crear un LinkedHashMap usando los métodos Collectors.toMap() ?

Java 8: ¿Cómo trabajo con métodos de lanzamiento de excepción en las transmisiones?

Supongamos que tengo una clase y un método class A { void foo() throws Exception() { … } } Ahora me gustaría llamar a foo para cada instancia de A entregada por una secuencia como: void bar() throws Exception { Stream as = … as.forEach(a -> a.foo()); } Pregunta: ¿Cómo manejo adecuadamente la excepción? El […]

¿Cómo puedo crear una transmisión desde una matriz?

Actualmente cada vez que necesito crear stream desde una matriz, lo hago String[] array = {“x1”, “x2”}; Arrays.asList(array).stream(); ¿Hay alguna forma directa de crear una transmisión desde una matriz?

Recuperando una lista de java.util.stream.Stream en Java 8

Estaba jugando con Java 8 lambdas para filtrar fácilmente las colecciones. Pero no encontré una forma concisa de recuperar el resultado como una nueva lista dentro de la misma statement. Aquí está mi enfoque más conciso hasta ahora: List sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L); List targetLongList = new ArrayList(); sourceLongList.stream().filter(l […]

Java 8 grupo nested (multinivel) por

Tengo pocas clases como a continuación class Pojo { List items; } class Item { T key1; List subItems; } class SubItem { V key2; Object otherAttribute1; } Quiero agregar los elementos basados ​​en key1 y para cada agregación, los subelementos deben agregarse por key2 de la siguiente manera: Map<T, Map<V, List> ¿Cómo es posible […]