Filtrar y transformar objetos en Java usando programación funcional
Anuncios
Publicidad
En este ejercicio práctico aprenderás cómo aplicar programación funcional en Java para trabajar con listas de objetos. Utilizando la API de Streams, filtramos productos según su precio, transformamos sus nombres a mayúsculas y mostramos el valor con descuento. Este enfoque moderno y limpio permite escribir código más expresivo, evitando bucles tradicionales y facilitando el procesamiento de datos de forma fluida y eficiente.
📎Transformar números en texto usando Streams en Java
Clase producto:

public class Producto {
// Atributo privado cadena de texto llamado nombre.
// Atributo privado double - Decimal - llamado precio.
private String nombre;
private double precio;
// Añadimos el constructor:
public Producto(String nombre, double precio) {
this.nombre = nombre;
this.precio = precio;
}
// Añadimos getter y setter:
public String getNombre ()
{
return this.nombre;
}
public double getPrecio()
{
return this.precio;
}
// Método que devuelve el precio con el descuento:
public double getPrecioConDescuento() {
return precio * 0.90;
}
}
Clase main:



public class Program {
public static void main(String[] args) {
// Creamos una lista de productos usando como tipo de dato nuestra clase producto.
List <Producto> listaDeProductos = new ArrayList<>();
// Añadimos 4 productos, pero recuerda crear una instancia de producto.
listaDeProductos.add(new Producto("Monitor", 120));
listaDeProductos.add(new Producto("TV", 180));
listaDeProductos.add(new Producto("USB_8GB", 3));
listaDeProductos.add(new Producto("Ratón_USB", 9));
// Convertimos nuestra lista a un Streams de tipo Producto.
listaDeProductos.stream().
// Filtrar solo los productos que cuestan más de 10 euros.
// Esto quiere decir para producto haz precio del producto mayor a 10 euros. Solo mayores.
filter(p -> p.getPrecio() > 10). // Aplica el filtro si resulta verdadera
// Para p obtener el nombre y transformarlo a mayúscula.
// Para p obtener el precio en decuento.
map(p -> "Nombre del producto : " +
p.getNombre().toUpperCase() +
"Precio con porcentaje : " +
p.getPrecioConDescuento()).
// Método referencia: Imprimir cada línea usando referencia a método
forEach(System.out::println);
}
}
Seguir leyendo:
¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)






