Tag Archives: Java 8

Java como cambiar el time zone a un Date

Vamos a examinar cómo cambiar el time zone de un date en java de distintos modos. Como cambiar el timezone de un java.util.Date usando SimpleDateFormat Debemos tener claro que la clase Date en Java no tiene time zone. java.util.Date representa la cantidad de segundos transcurridos desde la medianoche 1 de enero de 1970 a las… Read More »

Java Convertir un List a un Map usando Stream

En este articulo veras como convertir un list a un map utilizando para ello un Stream disponible desde Java 8. ¿Cómo convertir un List a un Map? Partiendo de una lista de productos creamos un Stream Usar Collectors.toMap para crear un map Luego haces uso del Stream y “Collectors.toMap” en donde para este ejemplo usamos… Read More »

Java 8 Stream map flatMap y filter

Stream map te permite leer cada elemento y transformar los valores que se encuentran en el Stream entregandote otro Stream con el resultado para seguir realizando operaciones. Cómo usar Stream map Como puedes ver en el ejemplo a continuación map() recibe una función como parámetro para realizar alguna transformación sobre cada elemento y devuelve otro… Read More »

Java 8 Variable Scope en Lambda

Variable Scope en Lambdas El acceso a variables dentro de lambdas puede ser algo confuso, pero es sencillo si lo ves con un ejemplo. Observa este código en el cual accedemos a los parámetros “text” y “count” desde la expresión lambda. Cuando llamamos al método showText este ejecutará un nuevo hilo con la expresión lambda… Read More »

Java 8 Constructor por Referencia

Java Constructor por Referencia En Java 8 se han introducido importantes cambios como lambdas, interfaces funcionales y métodos por referencia. Veamos ahora cómo hacer uso de constructores por referencia. Si no has leido el articulo sobre métodos por referencia te recomiendo que le des un vistazo porque tiene mucho en común con el artículo a… Read More »

Java 8 Optional

Java 8 Optional Evitar los Nullpointer es uno de los problemas con los que habitualmente nos encontramos los programadores en Java. Continuamente realizamos operaciones para verificar que el valor no sea null o tener la precaución de devolver valores not null y a pesar de esto es habitual el fallo por los null pointer. Java… Read More »

Java 8 como usar fechas y horas con la api java.time

Java 8 nos trae al fin una nueva api para el manejo de fechas. Nos encontramos dentro del paquete java.time con nuevas clases para resolver los problemas con fechas como LocalDate, horas con LocalTime o la combinación de fecha y hora con LocalDateTime. También incluye como es debido dentro de esta api el uso de… Read More »

Java 8 Reference method

Puedes utilizar lambda para crear métodos anónimos, pero hay casos en el que estas expresiones lambda no hacen otra cosa más que llamar a otro método. En estos casos resulta más claro llamar al método directamente por su nombre. Si tienes una lista de personas de este modo y quieres ordenarla harías algo así de… Read More »

Java 8 Uso de Stream básico

Podemos definir Streams como una secuencia de funciones que se ejecutan una detrás de otra, de forma anidada. Comparemos antes un Iterador con un Stream. Habitualmente cuando tenemos una collection lo que hacemos luego es iterar para realizar algo con dicha colección. Un Stream luce similar a una collection permitiendo además realizar operaciones directamente sobre… Read More »

Java 8 Usar expresiones Lambda

Que son las expresiones lambda Las expresiones lambda son una forma de crear funciones anónimas y que puedes utilzar en dónde el párametro recibido sea una interfaz funcional Una expresión lambda tiene esta forma (parameters) -> expression (parameters) -> { statements; } Estas son algunas expresiones lambda de ejemplo: () -> 5 // directamente devuelve… Read More »

Java 8 Interfaces Funcionales

Desde versiones anteriores conoces las interfaces SAM (Single Abstract Method interfaces). Es decir, interfaces que tienen un solo método abstracto; ejemplo de ellas encontramos a java.lang.Runnable Usualmente utilizamos este tipo de interfaz de forma anónima Java 8 mantiene estas SAM interfaces pero las llama Functional Interfaces. Creando además una anotación específica @FunctionalInterface que le dará… Read More »

Java 8 – Default Methods – Métodos Default

Java 8 ha hecho cambios en las interfaces, las que ahora podemos agregarles métodos default (default methods). Esto permite agregar métodos a las interfaces sin necesidad de implementarlos en las clases hijas. Este método default provee un comportamiento por defecto para el caso en que la clase concreta no lo especifique. Método Default: Sabemos que… Read More »