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!!!
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
En este post dejo una forma de como utilizar imágenes en un JTable ademas de implementar MouseListener para realizar dif...
Si bien se puede hacer uso de archivos de imagen (jpg, png, bmp, etc) en las aplicaciones java, también este te permite...
Hace tiempo me pidieron el código fuente de un juego de Puzzle de Neon Genesis Evangelión, este juego es completo, tiene...
Una de las novedades de Java 9 y 10 aunque por el momento en modo de prueba (jdk.incubator.http) es el Cliente HTTP el c...
Kali Linux es un sistema operativo de pruebas de intrusión con una gran colección de herramientas forenses y de segurida...
pixilart no es solo una herramienta online sino una comunidad de diseñadores a quienes les encanta el arte hecha con «pi...
El gigante tecnologico Google a puesto un bonito Doodle en su buscador que esta fascinando a sus millones de usuarios qu...
WhatsApp anuncio a través de su blog que ya se encuentra disponible la función de envío de fotos y videos TEMPORALES, es...
Muchas de las innovaciones computacionales de la NASA se desarrollaron para ayudar a explorar el espacio, pero ahora la...
TikTok es una plataforma de microvideos muy popular entre los jóvenes el cual cuenta ya con millones de videos cortps de...