Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Java / Manipular colecciones de una forma sencilla

Manipular colecciones de una forma sencilla

Autor jc mouse martes, abril 9, 2019

Java proporciona Collection Framework, que define varias clases e interfaces para representar un grupo de objetos como una sola unidad.

Logo Collections

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 http://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:

output filter list

Espero que esta librería te sirva y si quieres saber más visita el repositorio de Purify4J

enjoy!!!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

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! :)

También Te Podría Interesar

Blog MVC – Iniciando el proyecto [p2]

Blog MVC – Iniciando el proyecto [p2]

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...

Entornos de programación visual para Arduino

Entornos de programación visual para Arduino

A continuación dejo a consideración 4 entornos de desarrollo visual para Arduino todos gratuitos y de código abierto. Si...

Transacciones – Uso de Commit y Rollback

Transacciones – Uso de Commit y Rollback

Cuando desarrollamos aplicaciones en java con base de datos debemos tener cuidado en que se cumplan un conjunto de carac...

Guía básica: Trabajando con GitHub y Netbeans

Guía básica: Trabajando con GitHub y Netbeans

Netbeans tiene soporte para trabajar con varias herramientas de control de versiones, GIT es una de ellas, esta herramie...

Lectura y edición de metadatos con ExifTool

Lectura y edición de metadatos con ExifTool

En este post te hablaremos sobre una interesante herramienta para le lectura y edición de metadatos que no te debe de fa...

GridView con imagenes en miniatura

GridView con imagenes en miniatura

Entre las muchas aplicaciones que hay en la playstore de google están las galerías de fotos de chicas 🙂 que tantos nos e...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Comparte lo que sabes

Categorias

Últimas entradas

El espirógrafo es una herramienta para generar diseños geométricos conocidos como hipotrocoides (es la curva plana que d...

Pyodide es un proyecto experimental de Mozilla  que proporciona un intérprete de Python que se ejecuta completamente en...

PicarOS Diego es una distribución GNU/Linux basada en Debian enfocada principalmente en la educación dentro del aula rec...

Windows XP fue lanzado oficialmente el 25 de octubre de 2001, han pasado ya 17 años y 7 meses convirtiendo así a XP uno...

Android Bolivia

MAUS