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!!!
En este tutorial crearemos un interesante efecto de explosión al momento de abrir un JPanel, este efecto puede extenders[...]
Segunda parte del tutorial [Crea tu blog con el patrón MVC y php]. En esta 2da parte toca ver lo que es la creación del[...]
La prueba del camino básico, es una prueba de «caja blanca» que consiste en verificar el código de nuestros sistemas de[...]
En este post vemos un ejemplo de como convertir un archivo de imagen en una cadena de texto codificado en Base64 aprovec[...]
¿Que es el Ciberbullying? Ciberbullying es la unión de dos palabras en inglés cyber + bullying, en español lo conocemos[...]
Spritely es un plugin para JQuery que te permite crear animaciones con puro javascript y así no tener que utilizar flash[...]