ArrayList en java con programas de ejemplo

Por Chaitanya Singh | Filed Under: Colecciones de Java

La claseArraylist implementa la interfaz de la lista y se basa en una estructura de datos Array. Se utiliza ampliamente por la funcionalidad y flexibilidad que ofrece. La mayoría de los desarrolladores eligen Arraylist en lugar de Array, ya que es una muy buena alternativa a los tradicionales arrays java. ArrayList es una implementación de arreglos redimensionables de la interfaz de la Lista. Implementa todas las operaciones opcionales de la lista, y permite todos los elementos, incluso los nulos.

Java ArrayList

Tabla de contenidos

1. ¿Por qué ArrayList es mejor que Array?
2. Crear ArrayList
3. Añadir elemento
4. Cambiar un elemento
5. Quitar el elemento
6. Lista de arreglos de bucles
7. Tamaño de la lista
8. Un simple ejemplo de ArrayList
9. Ordenar la lista de arreglos
10. Métodos de la clase ArrayList
11. Enlaces de más de 50 Tutoriales y ejemplos publicados en este sitio web

¿Por qué ArrayList es mejor que Array?

La limitación con el Array es que tiene una longitud fija, así que si está lleno no puedes añadir más elementos a él, de la misma manera si hay un número de elementos se quita de él el consumo de memoria sería el mismo que no se reduce.

En el otro ArrayList puede crecer y encoger dinámicamente después de la adición y la eliminación de elementos (Ver las imágenes de abajo). Aparte de estos beneficios, la clase ArrayList nos permite utilizar métodos predefinidos de la misma, lo que facilita nuestra tarea. Veamos los diagramas para entender la adición y eliminación de elementos de ArrayList y luego veremos los programas.

Adición de elementos en ArrayList en la posición especificada:
Java ArrayList - Añadir elemento

Quitar Elemento de ArrayList:
ArrayList en Java - Removiendo el elemento

¿Cómo crear una ArrayList?

Podemos crear una ArrayList escribiendo una simple declaración como esta:

Esta declaración crea una ArrayList con el nombre alistado con el tipo «String». El tipo determina qué tipo de elementos tendrá la lista. Como esta lista es de tipo «String», los elementos que se añadan a esta lista serán de tipo «String».

ArrayList<String> alist=nueva ArrayList<String>();

De forma similar podemos crear ArrayList que acepte elementos int.

ArrayList<Integer> list=new ArrayList<Integer>();

¿Cómo añadir elementos a una ArrayList?

Añadimos elementos a una ArrayList mediante el método add(), este método tiene un par de variaciones, que podemos utilizar en función del requerimiento. Por ejemplo: Si queremos añadir el elemento al final de la Lista, entonces simplemente hagámoslo así:

alist.add("Steve"); //Esto agregará "Steve" al final de la Lista

Para añadir el elemento en la ubicación especificada en ArrayList, podemos especificar el índice en el método de adición de esta manera:

alist.add(3, "Steve"); //Esto añadirá "Steve" en la cuarta posición

Escribamos el código completo:

importar java.util.*; class JavaExample{ public static void main(String args[]){ ArrayList<String> alist=new ArrayList<String>(); alist.add("Steve"); alist.add("Tim"); alist.add("Lucy"); alist.add("Pat"); alist.add("Angela"); alist.add("Tom"); //desplegando elementos System.out.println(alist); / agregando "Steve" en la cuarta posición alist.add(3, "Steve"); //desplegando elementos System.out.println(alist); } }

Salida:

[Steve, Tim, Lucy, Pat, Angela, Tom][Steve, Tim, Lucy, Steve, Pat, Angela, Tom]

Nota: Dado que el índice comienza con 0, el índice 3 representaría la cuarta posición no 3.

Cambiar un elemento en ArrayList

Podemos usar el método del conjunto para cambiar un elemento en ArrayList. Proporcionamos el índice y el nuevo elemento, este método luego actualiza el elemento presente en el índice dado con el nuevo elemento dado. En el siguiente ejemplo, hemos dado el índice como 0 y el nuevo elemento como «Lucy» en el método set(), por lo que el método actualiza el elemento presente en el índice 0 (que es el primer elemento «Jim» en este ejemplo) con el nuevo elemento String «Lucy», que podemos ver en la salida.

importar java.util.ArrayList;public class JavaExample { public static void main(String[] args) { ArrayList<String> names = new ArrayList<String>(); names.add("Jim"); names.add("Jack"); names.add("Ajeet"); names.add("Chaitanya"); names.set(0, "Lucy"); System.out.println(names); }}

Salida:
Cambiar un elemento en ArrayList

¿Cómo eliminar elementos de la Lista de Arreglos?

Utilizamos el método remove() para eliminar elementos de un ArrayList, igual que el método add(), este método también tiene pocas variaciones.

Por ejemplo:

importar java.util.*;class JavaExample{ public static void main(String args[]){ ArrayList<String> alist=new ArrayList<String>(); alist.add("Steve"); alist.add("Tim"); alist.add("Lucy"); alist.add("Pat"); alist.add("Angela"); alist.add("Tom"); //visualizando elementos System.out.println(alist); //Eliminando "Steve" y "Angela" alist.remove("Steve"); alist.remove("Angela"); //visualizando elementos System.out.println(alist); //Eliminando el 3er elemento alist.remove(2); //visualizando elementos System.out.println(alist); }}

Salida:

[Steve, Tim, Lucy, Pat, Angela, Tom][Tim, Lucy, Pat, Tom][Tim, Lucy, Tom]

Iterating ArrayList

En los ejemplos anteriores, hemos mostrado los elementos de la Lista de Arreglos sólo refiriéndonos a la instancia de la Lista de Arreglos, que definitivamente no es la forma correcta de mostrar los elementos. La forma correcta de mostrar los elementos es usando un bucle avanzado como este.

import java.util.*; class JavaExample{ public static void main(String args[]){ ArrayList<String> alist=new ArrayList<String>(); alist.add("Gregor Clegane"); alist.add("Khal Drogo"); alist.add("Cersei Lannister"); alist.add("Sandor Clegane"); alist.add("Tyrion Lannister"); //iterating ArrayList for(String str:alist) System.out.println(str); } }

Salida:

Gregor CleganeKhal DrogoCersei LannisterSandor CleganeTyrion Lannister

Tamaño de la lista de arreglos

Podemos usar el método size() de ArrayList para encontrar el número de elementos en una ArrayList.

importar java.util.ArrayList;public class JavaExample { public static void main(String[] args) { ArrayList<Integer> numbers = new ArrayList<Integer>(); numbers.add(1); numbers.add(7); numbers.add(5); numbers.add(6); System.out.println("Número de elementos en ArrayList: "+números.tamaño()); }}

Salida:
Tamaño de la lista de arreglos

Ejemplo de ArrayList en Java

Este ejemplo demuestra cómo crear, inicializar, añadir y eliminar elementos de la lista de arreglos. En este ejemplo tenemos una ArrayList del tipo «String». Hemos añadido 5 elementos String en la ArrayList usando el método add(String E), este método añade el elemento al final de la ArrayList.

A continuación añadimos dos elementos más en la ArrayList utilizando el método add(int index, String E), este método añade el elemento especificado en el índice especificado, el índice 0 indica la primera posición y el 1 indica la segunda posición.

A continuación, estamos eliminando los elementos «Chaitanya» y «Harry» de la ArrayList y luego estamos eliminando el segundo elemento de la ArrayList utilizando el método remove(int index). Como hemos especificado el índice como 1 (remove(1)), eliminaría el segundo elemento.

import java.util.*;public class JavaExample { public static void main(String args[]) { /* Creando una ArrayList de tipo "String" lo que significa que * sólo podemos añadir elementos "String" */ ArrayList<String> obj = new ArrayList<String>(); /* Así es como añadimos elementos a una ArrayList*/ obj.add("Ajeet"); obj.add("Harry"); obj.add("Chaitanya"); obj.add("Steve"); obj.add("Anuj"); // Mostrar elementos System.out.println("ListaDeArregloOriginal:"); for(String str:obj) System.out.println(str); /* Añadir elemento en el índice dado * obj.add(0, "Rahul") - Añadir elemento "Rahul" en la primera posición * obj.add(1, "Justin") - Añadir el elemento "Justin" en la segunda posición */ obj.add(0, "Rahul"); obj.add(1, "Justin"); // Mostrar elementos System.out.println("ArrayList después de añadir la operación:"); for(String str:obj) System.out.println(str); // Quitar elementos de ArrayList como este obj.remove("Chaitanya"); // Quitar "Chaitanya" de ArrayList obj.remove("Harry"); //Quita "Harry" de ArrayList // Mostrar elementos System.out.println("ArrayList después de la operación de eliminación:"); for(String str:obj) System.out.println(str); //Quitar elemento del índice especificado obj.remove(1); //Elimina el segundo elemento de la lista // Mostrando los elementos System.out.println("Final ArrayList:"); for(String str:obj) System.out.println(str); }}Salida:
Lista original de la matriz:AjeetHarryChaitanyaSteveAnujArrayList después de añadir la operación:RahulJustinAjeetHarryChaitanyaSteveAnujArrayList después de quitar la operación:RahulJustinAjeetSteveAnujList final de la matriz:RahulAjeetSteveAnuj

Ordenar la lista de arreglos

Tenemos un método sort () en la clase Collections. Esta clase es una parte del paquete java.util. Este método se puede utilizar para ordenar un ArrayList. En el siguiente ejemplo hemos ordenado una lista de tipo String alfabéticamente, sin embargo este método funciona también en lista numérica (como el tipo Integer ArrayList).

importar java.util.ArrayList;importar java.util.Collections;public class JavaExample { public static void main(String[] args) { ArrayList<String> fruits = new ArrayList<String>(); fruits.add("Orange"); fruits.add("Apple"); fruits.add("Banana"); fruits.add("Pineapple"); Collections.sort(fruits); for (String str : fruits) { System.out.println(str); } }}

Salida:
Ordenar la lista de arreglos

Métodos de la clase ArrayList

En el ejemplo anterior hemos utilizado métodos como add() y remove(). Sin embargo, hay varios métodos disponibles que pueden ser utilizados directamente usando el objeto de la clase ArrayList. Veamos algunos métodos importantes de la clase ArrayList.

1) add( Object o): Este método añade un objeto o al arraylist.

obj.add("hola");

Esta sentencia añadiría una cadena hola en la lista de arreglos en la última posición.

2) add (int index, Object o): Añade el objeto o a la lista del array en el índice dado.

obj.add(2, "bye");

Añade la cadena bye al 2º índice (3ª posición ya que la lista de arrays comienza con el índice 0) de la lista de arrays.

3) remove(Object o): Elimina el objeto o de la lista de arreglos.

obj.remove("Chaitanya");

Esta declaración eliminará la cadena «Chaitanya» de la ArrayList.

4) remove( int index): Elimina el elemento de un índice dado.

obj.remove(3);

Eliminaría el elemento del índice 3 (4º elemento de la lista – La lista comienza con o).

5) set(int index, Object o): Se utiliza para actualizar un elemento. Sustituye el elemento presente en el índice especificado por el objeto o.

obj.set(2, "Tom");

Reemplaza el 3er elemento (índice =2 es 3er elemento) con el valor Tom.

6) int indexOf(Object o): Da el índice del objeto o. Si el elemento no se encuentra en la lista, este método devuelve el valor -1.

int pos = obj.indexOf("Tom");

Esto daría el índice (posición) de la cadena Tom en la lista.

7) Objeto get(int index): Devuelve el objeto de la lista que está presente en el índice especificado.

String str= obj.get(2);

La función get devolvería la cadena almacenada en la 3ª posición (índice 2) y se asignaría a la cadena «str». Hemos almacenado el valor devuelto en la variable string porque en nuestro ejemplo hemos definido que el ArrayList es de tipo String. Si se tiene una lista de arrays de números enteros, el valor devuelto debería ser almacenado en una variable de números enteros.

8) tamaño de la int(): Da el tamaño de la Lista de Arreglos – Número de elementos de la lista.

int numberofitems = obj.size();

9) boolean contains(Object o): Comprueba si el objeto o está presente en la lista de arreglos si está ahí, entonces devuelve true o devuelve false.

obj.contains("Steve");

Devolvería true si la cadena «Steve» está presente en la lista, si no, obtendríamos false.

10) clear( ): Se utiliza para eliminar todos los elementos de la lista de arreglos de una sola vez. El siguiente código eliminará todos los elementos de la lista de arreglos cuyo objeto sea obj.

obj.clear();

Tutoriales de Java ArrayList

Aquí está la lista de los tutoriales de ArrayList publicados en beginnersbook.com.

Conceptos básicos de ArrayList

Clasificación

Añadir/eliminar

Obtener/Buscar

Otros tutoriales en ArrayList

Conversiones:

Diferencias:

Referencia

Comentarios

  1. R Panterasays17 de noviembre de 2014 a las 3:36 AM Muchas gracias por su libro para principiantes. Es mejor que cualquier otra fuente que he encontrado para un principiante de Java. Los ejemplos son especialmente útiles. Le deseo éxito. Responda
  2. Santoshsays 9 de enero de 2015 a las 9:52 AMHi. Los ejemplos y conceptos se explican muy bien y están bien organizados. Gracias. Responda.
  3. Venkatsays27 de marzo de 2015 a las 7:33 AMHi señor! Nuestra forma de explicación es impresionante. Este sitio es el mejor para los principiantes de Java.
  4. Rahul Raaj Jamuarsays31 de marzo de 2015 a las 9:25 AM Muchas gracias por publicar estos contenidos. Los ejemplos que se dan aquí son los mejores para entender cualquier concepto. Sigue añadiendo más ejemplos. Gracias de nuevo :)Responder
  5. Abelsays9 de abril de 2015 a las 7:13 AM Amigo, no puedo comandar la lista de arreglos que me muestran el error: El tipo ArrayList no es genérico; no puede ser parametrizado con argumentos ReplyPriyasaysApril 11, 2015 at 7:55 AMI sospecho que has importado alguna clase diferente de ArrayList en tu classpath.Try import java.util.ArrayList, y estoy seguro de que funcionaría. Comprueba también tu versión de Java, ArrayList no es una clase de legado, así que podría ser compatible con JDK 1.5Priya.Reply
  6. Jaisays 21 de agosto de 2015 a las 4:54 PMExample son claras y fáciles de entender rápidamente. La forma de presentación es realmente muy agradable. Gracias. Responde.
  7. TOSYNsays30 de septiembre de 2015 a las 9:25 AMi acaba de tropezar con su sitio web en Google, nunca supo que este tipo de sitio web java bien explicativo existe. Sus temas son realmente útiles para un principiante de Java. Dirigiré a mis principiantes aquí. Gracias a usted. Responda.
  8. veereshsays2 de febrero de 2016 a las 3:52 AMHi, las cosas aquí son muy claras para entender. Es muy bueno para los principiantes como yo. Responde
  9. Arun Singhsays 21 de abril de 2016 a las 3:20 AM ¿Por qué no podemos añadir elementos fuera del método main()? Responder
  10. El 20 de mayo de 2016 a las 11:00 AM se dice que hay elementos duplicados en la lista. Si llamo al método remove(), ¿eliminará todos los elementos duplicados? Responde el 6 de junio de 2016 a las 7:47. El PMI intentó hacer esto y por ejemplo si lo tienes así: Si tienes la ArrayList creada digamos que es así: ArrayList list = new ArrayList(); y la pones así: posición 0 – «John»1 – «Michael»2 – «Mitch»3 – «Gus»4 – «John»5 – «Johnny» si dices: list.Eliminar («John»); entonces eliminará su primera ocurrencia. Así, los nuevos elementos serán así: 0 – «Michael»1 – «Mitch»2 – «Gus»3 – «John»4 – «Johnny»Espero haber sido lo suficientemente claro. :)Replyprasanthsays 21 de junio de 2018 a las 9:34 AMEl elemento que fue visto primero será removido con el método remove().El resto de los elementos duplicados permanecen en la lista.ReplyprasanthsaysJune 21, 2018 at 10:09 AMNo.No eliminará todos los elementos duplicados.remove() El método remove() eliminará el elemento especificado que ocurre en primera instancia.Reply
  11. Archanasays3 de agosto de 2016 a las 2:02 PM. Es realmente muy útil para entender en menos tiempo… demasiado bueno :)Respuesta
  12. Davidsays9 de febrero de 2017 a las 11:09 AMSo me alegro de haber venido aquí, por favor, ¿tienes el aprendizaje de Java en su conjunto en formato PDF? Responde
  13. Hans Rajsays 31 de agosto de 2017 a las 4:53 AMI quiere comparar la lista de arreglos con mi entrada de cadena en si declaración. Si la condición se hace realidad, entonces me devuelve el elemento o cadena que he comparado en la declaración. Por favor, ayúdeme. Gracias de antemano. Respuesta.
  14. niveditasays7 de enero de 2018 a las 6:59 AM-cómo crear una colección personalizada que sólo acepte números positivos como entradaResponde
  15. vedavathi J ReddysaysSeptember 18, 2018 at 2:47 PMNo hay palabras para decir, que tus tutoriales son impresionantes. Puedo conseguir todo en una sola página web, lo cual es muy bueno. Es muy útil añadir la primavera y la hibernación con esta página.
  16. Santoshsays12 de octubre de 2018 a la 1:24 PMNuestra explicación del concepto paso a paso. Respuesta
  17. fotos cuasays12 de octubre de 2018 a las 3:42 PMwow muchas gracias. Es realmente útil. Entonces, ¿cómo puedo acceder a él en pdfReply
  18. shanthisays12 de noviembre de 2018 a las 12:53 PMhay algún método que elimina todos los elementos que coinciden con el elemento dado (incluidos los duplicados) en el marco de la colección.
  19. Emad Beltajesays23 de noviembre de 2018 a las 6:48 PM Muchas gracias… por compartir nuestros conocimientos con nosotros con gran estilo.
  20. DHARMENDHARsaysDicember 28, 2018 at 4:52 PMSuch A Lovely Explanations , I had suggested all my friends for Beginnerbooks.comThank you Team.God Bless YouReply
  21. MRCsays7 de marzo de 2019 a las 8:05 AM¿Puedo añadir un elemento en una sola línea? Es posible.
  22. M Ravichandransays7 de marzo de 2019 a las 8:07 AM ¿Cómo agregar elementos numéricos en una sola línea de código? Responder
  23. Mayur Kandalkarsays21 de abril de 2019 a las 9:52 AMamazing explicación! Responder
  24. Kokila Viswanathansays12 de mayo de 2019 a las 11:34 AMRealmente muy muy buen tutorial para principiantes… Por favor, lea este tutorial si alguien quiere tener una idea clara sobre las colecciones… Después de leer este tutorial el 90% de las ideas se pueden obtener en las colecciones y estoy muy seguro… Responda
  25. Anoldsays2 de septiembre de 2019 a la 1:50 PM. ¿Dónde puedo encontrar una selección de objetos de Java, ayúdame por favor?
  26. Carlos Mercados dice 19 de septiembre de 2019 a las 3:13 PMBuen trabajo. ¡Gracias por la ayuda de Argentina! Respuesta
  27. Shalalasays28 de octubre de 2019 a las 8:41 AM Este es un sitio realmente increíble para los que quieren aprender mejor. Gracias por crear este sitio.
  28. Noah Moudsays5 de febrero de 2020 a las 8:15 PMRealmente genial, ¡gracias! ¿Planeas añadir JavaScript a tus idiomas? Responde
  29. Himanshu Gangwarsays28 de febrero de 2020 a las 6:20 PMGracias muy amables. Un millón de rupias de tiempo, señor.
Rate this post

Deja un comentario

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

Scroll al inicio