Java proporciona Collection Framework, que define varias clases e interfaces para representar un grupo de objetos como una sola unidad.
Las colecciones en java nos permiten almacenar objetos y también manipular estos objetos, sin embargo para realizar esto hay hay que escribir código y adaptarla para cada situación que se nos presente. Purify4J es una librería que nos facilita ese trabajo, Purify4J nos permite filtrar, ordenar y asignar colecciones en java con muy poco código.
¿Como lo añado a mi proyecto?
Lo primero que debes elegir es como quieres usar a librería Purify4J, puedes usarlo desde Maven:
<dependency> <groupId>com.github.geekonjava</groupId> <artifactId>Purify4J</artifactId> <version>1.0.1</version> </dependency>
Gradle: compile ‘com.github.geekonjava:Purify4J:1.0.1’
Descargarte el *.JAR desde <<AQUI>> 19kb
o puedes visitar el proyecto de Purify4J en GitHub
¿Como se usa?
Ahora que ya tenemos agregado Purify4j a nuestro proyecto, para poder usarlo debemos agregar «import static com.github.geekonjava.Refination.*;» a nuestras clases y ya.
Necesitamos también una colección y llenarlo con un objeto, nuestro objeto sera el siguiente:
public class Cliente { private String dni; private String nombre; private String sexo; private int edad; public Cliente(String dni, String nombre, String sexo, int edad) { this.dni = dni; this.nombre = nombre; this.sexo = sexo; this.edad = edad; } public String getDni() { return dni; } public void setDni(String dni) { this.dni = dni; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getSexo() { return sexo; } public void setSexo(String sexo) { this.sexo = sexo; } public int getEdad() { return edad; } public void setEdad(int edad) { this.edad = edad; } @Override public String toString() { return "Cliente{" + "dni=" + dni + ", nombre=" + nombre + ", sexo=" + sexo + ", edad=" + edad + '}'; } }
y llenamos nuestra List «clientes» de la siguiente forma:
List<Cliente> clientes = new ArrayList<>(); clientes.add(new Cliente("123","Zacarias Flores del Campo","M",21)); clientes.add(new Cliente("321","Armando Mocha","M",18)); clientes.add(new Cliente("132","Sevelinda Parada","F",27)); clientes.add(new Cliente("231","Elsa Capunta","F",16)); clientes.add(new Cliente("131","Jorge Nitales","M",69)); clientes.add(new Cliente("332","Yola Prieto","F",21)); clientes.add(new Cliente("313","Rosamel Forrito","M",31)); clientes.add(new Cliente("113","Esteban Dido","M",25));
Ahora, si quisiéramos filtrar a todos los clientes de sexo masculino, haríamos esto:
from(clientes).where("sexo", eq("M")).all();
Y si solo quisiéramos una lista con los clientes d sexo femenino «F» mayores de edad haríamos esto:
from(clientes).where("sexo", eq("F")).and("edad", greaterThan(17)).all();
Y si solo quisiéramos ordenar nuestra lista de clientes de mayor a menor, podemos hacer eso:
from(clientes).orderBy("edad", Order.DESC).all();
A continuación el código completo:
import java.util.ArrayList; import java.util.List; import static com.github.geekonjava.Refination.*; import com.github.geekonjava.query.order.Order; /** * @see https://www.jc-mouse.net * @author mouse */ public class Main { public static void main(String[] args) { List<Cliente> clientes = new ArrayList<>(); clientes.add(new Cliente("123","Zacarias Flores del Campo","M",21)); clientes.add(new Cliente("321","Armando Mocha","M",18)); clientes.add(new Cliente("132","Sevelinda Parada","F",27)); clientes.add(new Cliente("231","Elsa Capunta","F",16)); clientes.add(new Cliente("131","Jorge Nitales","M",69)); clientes.add(new Cliente("332","Yola Prieto","F",21)); clientes.add(new Cliente("313","Rosamel Forrito","M",31)); clientes.add(new Cliente("113","Esteban Dido","M",25)); //Clientes de sexo masculino List <Cliente> mList = from(clientes).where("sexo", eq("M")).all(); imprimirLista("Clientes de sexo masculino",mList); //Clientes mujeres mayores de edad (>=18) List <Cliente> fList = from(clientes).where("sexo", eq("F")).and("edad", greaterThan(17)).all(); imprimirLista("Clientes mujeres mayores de edad",fList); //Todos los clientes ordenados por edad de mayor a menor List <Cliente> ordenList = from(clientes).orderBy("edad", Order.DESC).all(); imprimirLista("Todos los clientes ordenados por edad de mayor a menor",ordenList); } public static void imprimirLista(String titulo, List<Cliente> lista){ System.out.println("\n " + titulo.toUpperCase()); lista.forEach((cliente) -> { System.out.println(cliente); }); } }
y obtenemos:
Espero que esta librería te sirva y si quieres saber más visita el repositorio de Purify4J
enjoy!!!
Comenzando este tutorial, primero necesitamos definir la «estructura» de nuestro proyecto. Haremos uso del IDE de Dreamw[...]
En este post aprenderemos lo que es la clonación de objetos en java o lo que es lo mismo, generación de nuevas instancia[...]
Cuando se desarrolla una aplicación, puede ser un requisito que este tenga soporte para varias tipos de base de datos, s[...]
En posts anteriores hablamos sobre los metadatos y el porque son importantes en la Seguridad Informática, vimos el manej[...]
El SystemTray/Bandeja del Sistema o como también se le llama «Área de Notificación» es la sección de la barra de tareas[...]
En este tutorial aprenderemos a crear nuestra propia aplicación java para generar códigos QR. ¿Que es un Código QR? «Un[...]