Clase ArrayList

29 abril 2012 Categories: Java

Tutorial Java 10: Clase ArrayList

Imagínense un arreglo que nos facilite su manipulación a través de toda una gama de métodos para poder agregarle a su lista elementos cuando queramos y en cualquier momento de la ejecución del programa, así como eliminarlos, modificarlos, acceder a ellos y buscarlos. Y prestemos mucha atención a estas últimas palabras, “En cualquier momento podemos agregar elementos al arreglo” lo cual significa que es dinámico, no tenemos que especificarle un tamaño como se hace en un arreglo convencional, el índice de un ArrayList se va incrementando al añadir elementos o disminuyendo al eliminarlos.

Entonces el tema de hoy son los ArrayList, explicare el uso de todos sus métodos y al final haremos un programa Java en donde apliquemos lo aprendido.

Lo primero que debemos de saber es que para utilizar la clase ArrayList debemos importar el paquete de la biblioteca de Java java.util. 

1
 import java.util.*;

Declaración de un ArrayList  
Clase Arraylist Java

Métodos del ArrayList 

add(elemento): Añade un elemento al final de la lista. Donde “a” es el elemento a añadir.

1
 lista.add(a);

add(posición, elemento): Inserta el elemento en la posición indicada. Donde  “i” es la posición donde se insertara el elemento “a”.

1
 lista.add(i, a);

set(posición, elemento): Modifica el elemento de la posición indicada. Donde  “i” es la posición del elemento que se modificara y “b” es el nuevo elemento.

1
 lista.set(i, b);

get(posición): Obtiene el elemento de la posición indicada. Donde  “i” es la posición.

1
 lista.get(i);

clear(): Elimina todos los elementos de la lista.

1
 lista.clear();

remove(posición): Elimina solo el elemento de la posición indicada. Donde  “i” es la posición.

1
 lista.remove(i);

contains(elemento): Devuelve true si el elemento se encuentra en la lista. Donde “a” es el elemento a buscar.

1
 lista.contains(a);

clone(): Copia una lista a otra. Aquí creamos el ArrayList lista2 y copiamos los elementos del ArrayList lista al ArrayList lista2. Aquí fíjense bien que con (ArrayList<Integer>) estamos convirtiendo lo que nos devuelve  el método clone( ) a un objeto ArrayList tipo Integer ya que el método clone() devuelve objetos de la clase Object.

1
2
 ArrayList<Integer> lista2 = new ArrayList<Integer>();
 lista2 = (ArrayList<Integer>)lista.clone();

size(): Nos da el tamaño de una lista.

1
 lista.size();

isEmpty(): Devuelve true si la lista esta vacía y false si no lo esta.

1
 lista.isEmpty();

iterator(): Se utiliza para recorrer las listas.

1
 Iterator iterador = lista.iterator();

iterator.Next(): Devuelve el próximo elemento de la lista.

1
 iterador.next();

iterator.hasNext(): Devuelve true si la lista tiene más elementos.

1
 iterador.hasNext();

iterator.remove(): Elimina el último elemento devuelto por Next().

1
 iterador.remove();

Ahora realizaremos un programa Java en donde ingresemos datos a un ArrayList para después manipularlo con los métodos que acabamos de mencionar. El programa es simple, solamente ingresaremos textos a un ArrayList de tipo String.

Clase ArrayList

  1. Modificaremos nuestro Programa Java llamado Lectura de nuestro Proyecto Lectura que hemos estado usando en los últimos Tutoriales y es en donde tenemos la clase ConvertirDatos. Deben de tener la clase ConvertirDatos para facilitar la lectura de textos y números enteros, así que si no la tienen por favor vayan al Tutorial Java 8 y cópienla.  NOTA:  Si quieren hacer este Programa Java en otro proyecto deben de copiar la clase ConvertirDatos() a la carpeta que indica la ruta de la Variable de Entorno CLASSPATH, por ejemplo:  ;C:\Program Files\Java\Clases. Dentro de la carpeta Clases guardaremos las clases que hagamos y que queramos compartir con cualquier programa y la variable CLASSPATH se encarga de indicarle al compilador en donde esta esa carpeta. Para editar la ruta de CLASSPATH vamos a: Equipo->Propiedades->Configuración avanzada del sistema->Variables de entorno. Si no tienen la variable hay que crearla y si ya la tienen solo agreguen al final la ruta de su carpeta. Cada ruta se separa con punto y coma (;).
  2. Declaramos nuestro ArrayList tipo String, la variable texto que es donde guardaremos lo que ingresemos y un int para llevar un contador del número de textos que hay en la lista.
    1
    2
    3
    4
    5
     ArrayList<String> lista = new ArrayList<String>();
    
     String texto = "";
     int respuesta = 0;
     int i = 0;
  3. El siguiente código añade elementos a la lista hasta que respondas con un “2” a la pregunta, ingresas el texto que quieras y ese texto es añadido a la lista con el método add.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     System.out.println("Añade textos a la lista:");
     while (respuesta != 2)
     {
       System.out.print("Texto " + ++i + ": ");
       texto = ConvertirDatos.LeerCadena();
       lista.add(texto);
    
       System.out.println("¿Quieres agregar otro texto a la lista?, (1=Si, 2=No)");
       respuesta = ConvertirDatos.ConvertirInt();
     }
  4. Ya con nuestra lista llena obtenemos el tamaño de esta con el método size().
    1
    2
    3
    4
     System.out.println();
     System.out.print("El tamaño de la lista es: ");
     System.out.println(lista.size());
     System.out.println();
  5. Ahora recorreremos la lista e iremos mostrando sus elementos. Tenemos que declarar el iterador de la lista para poder recorrerla con el método hasNext() mediante un ciclo while. Recordemos que hasNext() devuelve true si hay más elementos en la lista, entonces lo que hace este while es repetirse hasta que hasNext() devuelva false, o en otras palabras, mientras it.hasNext == true imprime el siguiente elemento de la lista.
    1
    2
    3
    4
    5
    6
    7
     Iterator it = lista.iterator();
    
     System.out.println("Los elementos de la lista son:");
     while(it.hasNext())
     {
       System.out.println(it.next());
     }
  6. Usamos el método add(pos, elem) para insertar elementos en cualquier posición de la lista. Ingresamos la posición deseada, el texto que se insertara y se los pasamos como parámetros al método add(pos, elem).
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     System.out.println();
    
     int posicion;
    
     System.out.println("Inserta un elemento en la lista");
     System.out.print("Ingresa la posicion en la que vas a insertarlo: ");
     posicion = ConvertirDatos.ConvertirInt();  
    
     System.out.print("Ingresa el elemento que insertaras: ");
     texto = ConvertirDatos.LeerCadena();
    
     lista.add(posicion, texto);
  7. Volvemos a mostrar la lista. Fíjense bien, es otro iterador.
    1
    2
    3
    4
    5
    6
    7
    8
    9
     System.out.println();
    
     Iterator it2 = lista.iterator();
    
     System.out.println("Ahora los elementos de la lista son:");
     while(it2.hasNext())
     {
       System.out.println(it2.next());
     }
  8. Usamos el método set(pos, elem) para modificar elementos de la lista. Ingresamos la posición que queremos modificar, el nuevo texto del elemento y se los pasamos como parámetros al método set(pos, elem).
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     System.out.println();
    
     System.out.println("Modifica un elemento en la lista");
     System.out.print("Ingresa la posicion del elemento que modificaras: ");
     posicion = ConvertirDatos.ConvertirInt();  
    
     System.out.print("Ingresa el nuevo texto del elemento: ");
     texto = ConvertirDatos.LeerCadena();
    
     lista.set(posicion, texto);
  9. De nuevo mostramos la lista para ver los cambios.
    1
    2
    3
    4
    5
    6
    7
    8
    9
     System.out.println();
    
     Iterator it3 = lista.iterator();
    
     System.out.println("Ahora los elementos de la lista son:");
     while(it3.hasNext())
     {
       System.out.println(it3.next());
     }
  10. Usamos el método contains(elem) para saber si existe un determinado elemento en la lista. Ingresamos el elemento a buscar, se lo pasamos como parámetro al método contains(elem) y lo metemos en un if-else. El if-else pregunta ¿lista contiene este texto?, si lo contiene confirmo que existe con un mensaje, si no lo contiene confirmo que no existe.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     System.out.println();
    
     System.out.println("Busca un elemento en la lista");
     System.out.print("Ingresa el elemento que quieres buscar: ");
     texto = ConvertirDatos.LeerCadena();
    
     if(lista.contains(texto))
       System.out.println("El elemento si se encuentra en la lista");
     else
       System.out.println("El elemento no se encuentra en la lista");
  11. Ejecutamos con F6 y el resultado es:

Clase Arraylist Java

Listo, ya saben cómo usar los ArrayList pero recuerden que en este Curso de Java es difícil explicarlo todo, quisiera poner más ejemplos de cada tema porque así quedaría más claro todo lo que se puede hacer, pero prefiero dedicar un Tutorial a cada tema para avanzar más rápido ya que hay muchas personas que están buscando información sobre temas más avanzados como interfaces graficas, applets, servlets, acceso a datos, etc., pero tampoco me quiero adelantar porque se perdería el objetivo del curso, que es aprender Java desde cero. ¿Ustedes que opinan?, comenten, díganme sus dudas o peticiones. Cuídense, nos vemos en el próximo Tutorial.

Clase ArrayList

1 Response to “Clase ArrayList”

  1. reygecko 16 enero 2013 at 2:49 (PERMALINK)

    Muchas gracias por tus explicaciones, me están siendo de mucha ayuda. :)

    Un saludo.

    Author