Ejercicios de colecciones

Ejercicios realizados en clase

Descarga de ejercicios: ficheros_unidad8

Manejo de ArrayList

/**
* Ejemplo de uso de la clase ArrayList
*
* @author Luis José Sánchez
*/
import java.util.ArrayList;

public class EjemploArrayList04 {
    public static void main(String[] args) {

        ArrayList<String> a = new ArrayList<String>();

        // a[0] = "rojo";
        a.add("rojo");
        a.add("verde");

        a.add("azul");
        a.add("blanco");
        a.add("amarillo");
        a.add("blanco");
        a.add(2, "negro");

        //System.out.println("Contenido de la lista: ");
        //for (int i = 0; i < a.size(); i ++) {
        //    System.out.println(a.get(i));
        //}
        for (String color : a) {
            System.out.println(color);
        }
        
        a.remove("blanco");

        if (a.contains("blanco")) {
            posicion = a.indexOf("blanco");
            a.remove(posicion);
        }

        if (a.contains("blanco")) {
            System.out.println("El blanco está en la lista de colores, posición: " + a.indexOf("blanco"));
        }
        a.remove("blanco");
        System.out.println("Contenido de la lista después de quitar la primera ocurrencia del color blanco: ");
        for (String color : a) {
            System.out.println(color);
        }
        a.remove(2);
        System.out.println("Contenido de la lista después de quitar el elemento de la posición 2: ");
        for (String color : a) {
            System.out.println(color);
        }
    }
}

Clase Gato con la interface Comparable

/**
 * Definición de la clase Gato
 *
 * @author
 */
public class Gato implements Comparable<Gato> {
    private String nombre;
    private String color;
    private String raza;

    public Gato(String nombre, String color, String raza) {
        this.nombre = nombre;
        this.color = color;
        this.raza = raza;
    }

    public String getNombre() {
        return nombre;
    }

    public String getRaza() {
        return raza;
    }

    public String toString() {
        return "Nombre: " + this.nombre + "\tColor: " + this.color + "\tRaza: " + this.raza;
    }

    @Override
    public int compareTo(Gato g) {

        // Comparar por nombre alfabéticamente de forma descendente, a - z
        //return this.nombre.toLowerCase().compareTo(g.getNombre().toLowerCase());

        // Comparar por raza alfabéticamente de forma descendente, a - z
        // return this.raza.toLowerCase().compareTo(g.getRaza().toLowerCase());

        // Comparar por raza alfabéticamente de forma ascendente, z - a
        return g.getRaza().toLowerCase().compareTo(this.raza.toLowerCase());
    }

    public boolean equals(Gato g) {
        return (this.nombre).equals(g.getNombre());
    }
}

Ordenar un ArrayList

/**
* Uso de un ArrayList de objetos
*
* @author Luis José Sánchez
*/
import java.util.ArrayList;
import java.util.Collections;

public class EjemploArrayList07 {
    public static void main(String[] args) {
        ArrayList<Gato> g = new ArrayList<Gato>();
        Gato gato;

        gato = new Gato("Garfield", "naranja", "mestizo");
        g.add(gato);

        g.add(new Gato("pepe", "gris", "angora"));
        g.add(new Gato("Mauri", "blanco", "manx"));
        g.add(new Gato("Ulises", "marrón", "persa"));

        System.out.println("\nDatos de los gatos:\n");
        for (Gato gatoAux : g) {
            System.out.println(gatoAux + "\n");
        }

        Collections.sort(g);
        System.out.println("\nDatos de los gatos ordenados por nombre:");
        for (Gato gatoAux : g) {
            System.out.println(gatoAux + "\n");
        }
    }
}

Ordenar un ArrayList usando Comparator

Clase PartidoFutbol

//package ArrayList_Objetos;

public class PartidoFutbol {
    
    private String equipoLocal;
    private String equipoVisitante;
    private int golesLocal;
    private int golesVisitante;
    
    public String getEquipoLocal() {
        return equipoLocal;
    }

    public void setEquipoLocal(String equipoLocal) {
        this.equipoLocal = equipoLocal;
    }

    public String getEquipoVisitante() {
        return equipoVisitante;
    }

    public void setEquipoVisitante(String equipoVisitante) {
        this.equipoVisitante = equipoVisitante;
    }

    public int getGolesLocal() {
        return golesLocal;
    }

    public void setGolesLocal(int golesLocal) {
        this.golesLocal = golesLocal;
    }

    public int getGolesVisitante() {
        return golesVisitante;
    }

    public void setGolesVisitante(int golesVisitante) {
        this.golesVisitante = golesVisitante;
    }
}

Fichero partidos

Ordenar el ArrayList

//package SortMain;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;

public class SortArrayList {

    private static ArrayList<Integer> arrayListInt = new ArrayList<>();
    private static ArrayList<Persona> personas = new ArrayList<>();

    public static void main(String args[]) {

        // Guardo datos en el ArrayList
        arrayListInt.add(3); 	arrayListInt.add(4);
        arrayListInt.add(2);	arrayListInt.add(6);
        arrayListInt.add(5);	arrayListInt.add(1);
        arrayListInt.add(7);

        // Imprimo el arrayList de Enteros desordenado
        System.out.println("ArrayList desordenado: ");
        printArrayListInt();


        // Ordeno el ArrayList de menor a mayor y lo imprimo
        System.out.println("\nArrayList ordenado de menor a mayor");
        Collections.sort(arrayListInt);
        printArrayListInt();

        // Ordeno el ArrayList de mayor a menor y lo imprimo
        System.out.println("\nArrayList ordenado de mayor a menor");
        Comparator<Integer> comparador = Collections.reverseOrder();
        Collections.sort(arrayListInt, comparador);
        printArrayListInt();

        // Guardo datos en el ArrayList de Objetos de la clase persona
        personas.add(new Persona("Pepe", 28));
        personas.add(new Persona("Juan", 32));
        personas.add(new Persona("Paco", 40));
        personas.add(new Persona("Lola", 20));
        personas.add(new Persona("Jose", 28));
        personas.add(new Persona("Dani", 24));
        personas.add(new Persona("Sara", 36));
        personas.add(new Persona("Susi", 24));

        // Imprimo el ArrayList desordenado por edad de la clase persona
        System.out.println("\nArrayList desordenada");
        printArrayListPersona();

        // Odeno el arrayList de menor a mayor por edad y lo imprimo
        System.out.println("\nArrayList ordenado por edad de menor a mayor:");
        Collections.sort(personas, new Comparator<Persona>() {
            @Override
            public int compare(Persona p1, Persona p2) {
                return new Integer(p1.getEdad()).compareTo(new Integer(p2.getEdad()));
            }
        });
        printArrayListPersona();

        // Odeno el arrayList de mayor a menor por edad y lo imprimo
        System.out.println("\nArrayList ordenado por edad de mayor a menor:");
        Collections.sort(personas, new Comparator<Persona>() {
            @Override
            public int compare(Persona p1, Persona p2) {
                // Aqui esta el truco, ahora comparamos p2 con p1 y no al reves como antes
                return new Integer(p2.getEdad()).compareTo(new Integer(p1.getEdad()));
            }
        });
        printArrayListPersona();

    }

    private static void printArrayListInt() {
        Iterator<Integer> itrArrayList = arrayListInt.iterator();
        int posicion = 1;
        while (itrArrayList.hasNext()) {
            System.out.println("Posicion(" + posicion + ") = " + itrArrayList.next());
            posicion++;
        }
    }

    private static void printArrayListPersona() {
        Iterator<Persona> itrArrayList = personas.iterator();
        int posicion = 1;
        while (itrArrayList.hasNext()) {
            System.out.println("Posicion(" + posicion + ") = " + itrArrayList.next().toString());
            posicion++;
        }
    }

}

class Persona {

    private String nombre;
    private int edad;

    public Persona() {
    }

    public Persona(String nombre, int edad) {
        this.nombre = nombre;
        this.edad = edad;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public int getEdad() {
        return edad;
    }

    public void setEdad(int edad) {
        this.edad = edad;
    }

    @Override
    public String toString() {
        return this.getNombre() + "  -  " + this.getEdad();
    }
}

 

 

 

Deja una respuesta