Articles of java java 8

¿Cuál es la implementación “predeterminada” del método definido en una interfaz?

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 […]

¿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?

Enumerar la secuencia to Future

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 […]

En Java, ¿cómo puedo transmitir eficiente y elegantemente los descendientes de un nodo de árbol?

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; // […]

¿Cómo convertir un iterador a una secuencia?

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 […]

¿Por qué los nuevos métodos java.util.Arrays en Java 8 no están sobrecargados para todos los tipos primitivos?

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 […]

Java8: ¿Por qué está prohibido definir un método predeterminado para un método de java.lang.Object

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 […]

¿Cómo convertir una secuencia de Java 8 a una matriz?

¿Cuál es la forma más fácil / más corta de convertir una Stream Java 8 en una matriz?

Interfaz con métodos predeterminados vs Clase abstracta en Java 8

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 […]