En la interfaz de colección, encontré un método llamado removeIf() que contiene su implementación. default boolean removeIf(Predicate filter) { Objects.requireNonNull(filter); boolean removed = false; final Iterator each = iterator(); while (each.hasNext()) { if (filter.test(each.next())) { each.remove(); removed = true; } } return removed; } Quiero saber si hay alguna forma de definir el cuerpo del […]
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?
Estoy tratando de convertir List<CompletableFuture> a CompletableFuture<List> . Esto es bastante útil, como cuando tiene muchas tareas asíncronas y necesita obtener resultados de todas ellas. Si alguno de ellos falla, el futuro final falla. Así es como lo he implementado: public static CompletableFuture<List> sequence2(List<CompletableFuture> com, ExecutorService exec) { if(com.isEmpty()){ throw new IllegalArgumentException(); } Stream<? extends […]
Supongamos que tenemos una colección de objetos que están identificados por String exclusivas, junto con un Tree clases que define una jerarquía sobre ellos. Esa clase se implementa utilizando un Map de nodos (representado por sus ID) a Collection s de sus respectivas identidades de los niños. class Tree { private Map<String, Collection> edges; // […]
Estoy buscando una forma concisa para convertir un Iterator en un Stream o más específicamente para “ver” el iterador como una secuencia. Por razones de rendimiento, me gustaría evitar una copia del iterador en una nueva lista: Iterator sourceIterator = Arrays.asList(“A”, “B”, “C”).iterator(); Collection copyList = new ArrayList(); sourceIterator.forEachRemaining(copyList::add); Stream targetStream = copyList.stream(); En base […]
Estoy revisando los cambios de API para Java 8 y noté que los nuevos métodos en java.util.Arrays no están sobrecargados para todas las primitivas. Los métodos que noté son: parallelSetAll paraleloPrefix spliterator stream Actualmente, estos nuevos métodos solo manejan primitivas int , long y double . int , long y double son probablemente las primitivas […]
Los métodos predeterminados son una nueva herramienta en nuestra caja de herramientas de Java. Sin embargo, traté de escribir una interfaz que define una versión default del método toString . Java me dice que esto está prohibido, ya que los métodos declarados en java.lang.Object pueden no ser ed default . ¿Por qué es este el […]
¿Cuál es la forma más fácil / más corta de convertir una Stream Java 8 en una matriz?
Como Java 8 permite la implementación predeterminada de métodos en la interfaz llamada Métodos por defecto , parece haber una confusión entre cuándo usaría una abstract class . Entonces, ¿cuándo se debe usar la interfaz con los métodos predeterminados y cuándo se debe usar una clase abstracta? ¿Las clases abstractas siguen siendo útiles en ese […]