El concepto de Java Collector Join viene a solventar un problema clásico cuando trabajamos con listas de elementos . En muchas ocasiones disponemos de una lista de objetos y necesitamos construir una cadena de texto que contenga parte de la información de esta lista y que ademas la delimite de alguna forma. Para entenderlo mejor […]
Java interface private method y como usarlo
El concepto de Java interface private method es relativamente nuevo y llega con Java 9 . ¿Cómo funciona este concepto y para que se usa? . Para ello tenemos que recordar que es Java 8 la primera versión de Java que soporta implementar métodos a nivel de interface .Tanto métodos estáticos como default methods. Vamos a […]
Java Optional Stream y reference methods
El uso de Java Optional Stream , poco a poco va aumentando según todos nosotros vamos actualizando nuestras aplicaciones a Java 8 . Recordemos que los tipos optional actuan como wrappers o envolturas que almacenan un tipo concreto. Es decir Optional<Integer> almacena un entero y Optional<String> almacena un posible valor de cadena. Vamos a construir […]
takeWhile dropWhile Java 9 Streams
El uso de takeWhile y dropWhile con Java 9 poco a poco se irá extendiendo . Con la llegada de Java 8 y el uso de streams muchas cosas han cambiado en la programación cotidiana de Java. Sin embargo quedaban algunas casuísticas que cubrir en cuanto a operadores. Java 9 añade dos operadores importantes takeWhile […]
Java 9 JShell y la utilidad de la consola
Creando un Java 8 Custom Stream con JDBC ResultSets
El concepto de Java 8 Custom Stream es un concepto que en más de una ocasión necesitaremos abordar. En la programación más clásica de Java 8 utilizamos el método .stream() y convertimos una lista en un Stream de objetos . Sin embargo hay situaciones que no son tan directas y en las cuales necesitaremos construir […]
Java Parallel Stream y rendimiento
El concepto de Java Parallel Stream es un concepto sencillo de entender . En muchas ocasiones podemos tener un flujo de trabajo que necesitemos mejorar su rendimiento permitiendo su ejecución en paralelo a través de varios Threads . Esto es algo que dependiendo del código del programa hacerlo sin utilizar streams es complicado. Vamos a […]
Java 8 Functional Interfaces y sus tipos
Cada día es más importante conocer los tipos de Java 8 Functional Interfaces. ¿Cuales son los tipos fundamentales de interfaces funcionales en Java?. Una función es un bloque de código que recibe varios parámetros y devuelve un resultado. Java 8 Functional Interfaces y Consumers Ahora bien existen variaciones sobre el concepto general de función. Por ejemplo […]
Java 8 Lambda Syntax ,simplificando nuestro código
Las opciones soportadas por Java 8 Lambda Syntax siempre son costosas de aprender e integrar como parte de nuestro conocimiento Java. ¿Cuales son las sintaxis soportadas por las expresiones lamdba? .Vamos a construir un ejemplo sencillo usando un Java Comparator. Para ello nos vamos a construir la clase Persona y con nombre, apellidos y edad […]
Java Optional ifPresent y como utilizarlo
Hoy vamos a hablar de Java Optional ifPresent. Cuando trabajamos con el tipo Optional conseguimos mejoras a la hora de trabajar con valores nulos. Veamos un ejemplo sencillo imaginemos que tenemos una clase Libro que contiene una lista de Capítulos. Busqueda Capítulo Disponemos de un método que nos busca un capítulo por nombre. El problema […]
Java 9 Collections y sus novedades
Las Novedades en Java 9 Collections son muchas. Java 8 introdujo las expresiones Lambda y los Streams que fueron un salto muy importante en Java. Sin embargo como una tecnología nueva quedaron muchas cosas por añadir y fue únicamente un primer paso. Java 9 hace uso del framework de colecciones de una forma mucho más […]
Java Stream Sum y Business Objects
El uso de Java Stream sum nos lo encontramos muchas veces en nuestro código de Java para sumar un conjunto de elementos. Sin embargo a veces nos olvidamos que los Streams han venido para ser usados en la plataforma Java en general y se pueden aplicar a muchas situaciones. Vamos a ver un ejemplo en […]