Ejemplos de ArrayList ArrayList en java.
ArrayList en Java ArrayList • Un ArrayList es un array dinámico. No tiene rest ricciones de capacidad. Su tamaño se ajusta de forma dinámica. • Constructor por defecto: new ArrayList(). Inicialmente, la capacidad de un ArrayList creado así es 0. • Los elementos dentro de un ArrayList son Objetos. No pueden ser de tipo básico, pero pueden ser de cualquier tipo de objeto. • La clase ArrayList forma parte del paquete java.util • Para poner un elemento dentro de esta estructura, est ructura, usamos el método add y para recoger un elemento usamos el método get. Ejemplo: import java.util.*; public class ArrayListExample1 { public static void main(String[ ] args) { ArrayList ArrayList thisArrayList = new ArrayList( ) ; thisArrayList.add("hello" ; thisArrayList.add(","; thisArrayList.add("are" ; thisArrayList.add("you" ; thisArrayList.add("?" ; for (int i=0;i<"thisArrayList.size( ) " ;i++) System.out.print(thisArrayList.get(i) + " " ) ; } } Métodos de ArrayList • int size() -- El tamaño actual (puede ser 0) • void add(obj) -- Añade un objeto al final del ArrayList, incrementando su ta maño de 1. obj es un objeto. • Object get(N) -- Devuelve el elemento almacenado a la posición N en el ArrayList. N tiene que ser un entero entre 0 y size()-1. – En – En ArrrayListInteger.java, se convierte el objeto devuelto por get() a un Integer con casting. – En – En ArrayListString.java, se convierte el objeto devuelto por get() a un Str ing llamando al método toString() de Object. -----Analizar import java.util.ArrayList; public class ArrayListInteger { public static void main(String[] args) { ArrayList numeros = new ArrayList() ; Integer num1 = new Integer(10); Integer num2 = new Integer(20) ; Integer num3 = new Integer(30) ;
Integer num4 = new Integer(40) ; numeros.add(num1) ; numeros.add(num2) ; numeros.add(num3) ; numeros.add(num4) ; int suma=0; for (int i=0;i<"numeros.size()";i++) { Integer thisNumero = (Integer)numeros.get(i) ; suma = suma + thisNumero.intValue() ; System.out.print(thisNumero); if (i<"numeros.size()"-1) System.out.print("+" ; else System.out.print("=" ; } System.out.println(suma); } } Otro ejemplo
6 import java.util.*; public class ArrayListString { public static void main(String[] args) { ArrayList cadenas = new ArrayList(); cadenas.add("hello"; cadenas.add("," ; cadenas.add("are" ; cadenas.add("you" ; cadenas.add("?" ; for (int i=0;i Object object = cadenas.get(i); String cadena = object.toString(); cadena = cadena.toUpperCase(); System.out.print(cadena+" "; } } }
ArrayList La clase ArrayList (java.util) es una objeto que actúa como una lista que implemente la interfaz Collection de java. Esta clase permite contener y ordenar objetos, incluso, puede almacenar objetos duplicados. Su tamaño es dinámico, es decir, esta lista crecerá a medida que se inserten en ella mas elementos. Debememos recordar que el índice de un ArrayList empieza en 0 (cero), es decir, el primer elemento del ArrayList tiene como índice el 0. Nota: Los objetos ArrayList se comportan igual que un objeto Vector desincronizado, pero con la salvedad de que un ArrayList se ejecuta más rápido que un Vector, ya que el ArrayList no tiene que implementar los métodos de sincronización de procesos.
Agregar elementos El ArrayList contendrá diversos elementos que debemos gestionar, para agregar elementos se puede hacer de dos formas usando el método add(…) que recibe por parámetro un objeto cualquiera: 1. La primera forma sería insertándolo sin darle una posición específica, entonces, el elemento será agregado al final:
1
// instanciamos un nuevo ArrayList
2
ArrayList mi_lista = new ArrayList();
3 4
// agregamos el elemento, por defecto lo agregará de último
5
// si la lista está vacía será el primer elemento
6
mi_lista.add("elemento 1");
2. La segunda forma sería dándole una posición específica en la lista. Si por alguna razón el vamos a insertar el elemento es una posición donde ya existe un elemento, éste elemento será desplazado a la derecha (junto con todos los demás que estén también a la derecha) para darle campo al elemento que será insertado en dicho índice:
1// instanciamos un nuevo ArrayList 2ArrayList mi_lista = new ArrayList(); 3 4// agregamos el elemento, por defecto lo agregará de último 5mi_lista.add(1, "elemento A");
Eliminar elementos Para eliminar elementos se dispone del método remove(…) en el cual recibe como argumento el objeto a eliminar o bien, eliminar el elemento conociendo su índice (posición). Para este ejemplo supongamos que tenemos una clase Persona, que tiene nombre y edad, insertar emos unas cuantas personas en la lista y luego eliminaremos una de ellas usando las dos formas.
Eliminado según su índice en la lista
Persona persona_1 = new Persona("Julian", 20);
2 Persona persona_2 = new Persona("Bety", 17);
3
Persona persona_3 = new Persona("Marta", 22);
4 5
ArrayList mi_lista = new ArrayList();
6 7
// agregamos unos cuantos elementos
8
mi_lista.add(persona_1);
9
mi_lista.add(persona_2);
10
mi_lista.add(persona_3);
11
// la estructura de a lista ha quedado asi: 0 = [Julian] 1 = [Bety] 2 = [Marta]
12 13
// si queremos eliminar a "Betty" por su índice seria asi: mi_lista.remove(1) // el 1 pertenece al índice o posicion de Betty en la lista
14 // la estructura de a lista ha quedado asi: 0 = [Julian] 1 = [Marta]
15
Marta ha pasado a la posición 1, ya que la lista forza a correr todos los elemenetos a al izquieda para que ocupe ese espacion eliminado, entonces el tamaño de la lista se reduce a 2 elementos únicamente Eliminado según el objeto como argumento
La otra forma sería si le enviamos el objeto para que la lista lo identifique. Aclaro, ingresar un nuevo elemento con los mismos datos no significa que sea le mismo elemento, para que deba ser igual deber tener la misma instancia y/o la misma posición en memoria ? 1 Persona persona_1 = new Persona("Julian", 20); 2 3
Persona persona_2 = new Persona("Bety", 17); Persona persona_3 = new Persona("Marta", 22);
4 5
ArrayList mi_lista = new ArrayList();
6 // agregamos unos cuantos elementos
7 8
mi_lista.add(persona_1); mi_lista.add(persona_2);
9 mi_lista.add(persona_3); 10// la estructura de a lista ha quedado asi: 0 = [Julian] 1 = [Bety] 2 = [Marta]
11 12// si queremos eliminar a "Julian" debemos "enviarle a Juan" de nuevo 13mi_lista.remove(persona_1) // se envia la instancia de Juan // la estructura de a lista ha quedado asi: 0 = [bety] 1 = [Marta] 14
15
Otras funciones importantes Tamaño
Para determinar la cantidad de elementos de la lista solo se llama al metodo size() ? 1int total = mi_lista.size();
Vaciar
Para vaciar la lista y dejarla sin ningún elemento en ella se usa el método clear() ? 1mi_lista.clear();
Si un objeto ya existe en la lista
Para saber si un objeto ésta insertado en lista usamos el método contains(…) , el cual devuelve true si existe o un false si sucede lo contrario ? 1boolean existencia = mi_lista.contains(elObjetoBuscado);
Si está vacía
Para saber si la lista esta vacía, es decir, si no tiene elementos usamos isEmpty() que devuelve true si NO hay elementos o un false si contiene algun elemnto. ? 1boolean vacia = mi_lista.isEmpty();
Convertir a un arreglo
Para pasar o copiar los elementos a un arreglo de objetos (TipoObjeto objetos []) se usa el método toArray() ? 1Object objetos [] = mi_lista.toArray();
El índice de un objeto
El uso del IndexOf(Object o) retorna la posición de un elemento que está en el array. ?
1 2
Persona a = new Persona ("Juan"); mi_lista.add(a);
3Persona b = new Persona ("Marta"); 4mi_lista.add(b); 5Persona c = new Persona ("Andrea"); 6mi_lista.add(c); 7 8 9
//retorna 2 int indice = mi_lista.indexOf(b);
Combinar dos ArrayList en uno
La función addAll(Collection c) se encarga de anexar un arraylist a otra ya creado. Pero también se puede aplicar a otro tipo de listas que implementen la interfaz Collection. ? 1
ArrayList otra_lista = new ArrayList();
2Persona d = new Persona ("Carlos"); 3otra_lista.add(d); 4Persona e = new Persona ("Samuel"); 5otra_lista.add(e); 6 7
mi_lista.addAll( otra_lista );