Curso de Objetos y Arrays en Java usando Funciones Lambda
Introducción
En este curso aprenderás cómo manejar objetos y arrays en Java, y cómo aprovechar las funciones lambda junto con la API de Streams para escribir código más conciso, expresivo y moderno.
1. Objetos en Java
Los objetos son instancias de clases. Veamos un ejemplo simple con una clase Persona:
class Persona {
private String nombre;
private int edad;
public Persona(String nombre, int edad) {
this.nombre = nombre;
this.edad = edad;
}
public String getNombre() { return nombre; }
public int getEdad() { return edad; }
@Override
public String toString() {
return nombre + " (" + edad + " años)";
}
}
2. Arrays de Objetos
Un array puede almacenar múltiples objetos del mismo tipo:
Persona[] personas = {
new Persona("Ana", 30),
new Persona("Luis", 25),
new Persona("María", 35)
};
3. Uso de Funciones Lambda
Con las funciones lambda, podemos recorrer, filtrar y ordenar arrays de objetos de forma más clara usando Arrays.stream() o List.stream().
Ejemplo: Filtrar por edad
import java.util.*;
import java.util.stream.*;
public class Main {
public static void main(String[] args) {
Persona[] personas = {
new Persona("Ana", 30),
new Persona("Luis", 25),
new Persona("María", 35)
};
// Filtrar mayores de 28 años
Arrays.stream(personas)
.filter(p -> p.getEdad() > 28)
.forEach(System.out::println);
}
}
Ejemplo: Ordenar por nombre
Arrays.stream(personas)
.sorted(Comparator.comparing(Persona::getNombre))
.forEach(System.out::println);
Ejemplo: Mapear solo nombres
List nombres = Arrays.stream(personas)
.map(Persona::getNombre)
.collect(Collectors.toList());
System.out.println(nombres);
4. Ejercicios Prácticos
- Crea un array de objetos
Productocon nombre y precio, y filtra los que cuesten más de 100. - Ordena un array de
Libropor su año de publicación usandoComparatory lambda. - Convierte un array de
Personaen una lista solo con los nombres en mayúscula.
Conclusión
Con las funciones lambda y la API de Streams, trabajar con objetos y arrays en Java se vuelve mucho más eficiente y expresivo. Estos conceptos son fundamentales para dominar Java moderno.