Anteriormente hablé y compartí una serie de ejemplos sobre arreglos, pero si necesitamos un arreglo el cual su tamaño sea dinámico? Para esto están los ArrayList, los cuales son arreglos dinámicos, al hablar de dinamismo en un arreglo nos referimos al tamaño de este, ya que un arreglo normal tiene un tamaño fijo para reservar en la memoria; en cambio, al crear un ArrayList en Java su tamaño inicial sera de 0, y al ir añadiendo valores ira aumentando el tamaño de este Arreglo especial.
En el presente post usare de ejemplo un sencillo ejemplo de ArrayList, ya que podremos usar tambien ArrayList de Objetos, y ArrayList multidimensionales 😉
COMO SE CREA UN ARRAYLIST EN JAVA
La sintaxis para la creación del ArrayList es sencilla, tal como vemos en la siguiente linea:
1 | ArrayList nombreArrayList = new ArrayList(); //Array List simple |
ArrayList nombreArrayList = new ArrayList(); //Array List simple
Solo ten en cuenta que el nombreArrayList se reemplaza por el nombre que tu quieras 😉 Con esto habremos creado un array list básico, y su tamaño como lo mencione al principio del post sera de Cero.
MÉTODOS ÚTILES PARA UN ARRAYLIST EN JAVA
Para realizar las operaciones comunes tales como ingresar, eliminar, buscar, modificar datos en un ArrayList encontraremos algunos métodos útiles para tal objetivo:
- add(X) -> Añade un valor u objeto al final del ArrayList.
- size() -> Retorna el tamaño del ArrayList.
- indexOf(X) -> Retorna el indice ó la posicion del elemento X.
- contains(X) -> Retorna true si existe el elemento X en el ArrayList.
- set(i, X) -> Modifica el elemento que esta en la posición i, por el nuevo elemento X.
- remove(X) -> Elimina el elemento X o en su defecto el elemento en la posición X.
- get(i) -> Obtiene el elemento en la posición i del Array List.
No sobra recordar que para usar los anteriores metodos se hace de la siguiente forma:
1 | nombreArrayList.metodoAUsar(parametros); |
nombreArrayList.metodoAUsar(parametros);
EJEMPLO SENCILLO ARRAYLIST EN JAVA
El siguiente es un ejemplo sencillo sobre los ArrayList, podran encontrar los metodos necesarios para ingresar, modificar, buscar, eliminar y mostrar los datos del ArrayList.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | import java.util.ArrayList; import javax.swing.JOptionPane; public class arrayLSimple { ArrayList miAL = new ArrayList(); //Array List simple public static void main(String args[]){ arrayLSimple obA = new arrayLSimple(); obA.menu(); } public void menu(){ String op; do{ op = JOptionPane.showInputDialog(null,"1. Introducir daton" +"2. Modificar daton" +"3. Eliminar daton" +"4. Buscar daton" +"5. Mostrar datosn" +"6. Salir"); switch(op){ case "1"://Bloque para introducir datos al array list String a; a = JOptionPane.showInputDialog(null, "Digite dato a ingresar: "); miAL.add(a); break; case "2"://Bloque para Modificar dato del array String b, c; int indice; b = JOptionPane.showInputDialog(null, "Ingrese el dato a Modificar: "); if(miAL.contains(b)){ indice = miAL.indexOf(b); c = JOptionPane.showInputDialog(null, "Ingrese el nuevo dato: "); miAL.set(indice, c); }else{ JOptionPane.showMessageDialog(null, "No existe el dato a modificar !", "", JOptionPane.ERROR_MESSAGE); } break; case "3"://Bloque para eliminar dato del array String d; b = JOptionPane.showInputDialog(null, "Ingrese el dato a eliminar: "); for(int i=0; i<miAL.size(); i++){ if(miAL.get(i).equals(b)){ miAL.remove(i); } } break; case "4"://Bloque para buscar datos en el array list String mostrarBus= "No se ha encontrado nada!", f; c = JOptionPane.showInputDialog(null, "Ingrese el dato a buscar: "); for( int i = 0 ; i < miAL.size(); i++){ if(miAL.get(i).equals(c)){ mostrarBus =""; mostrarBus += "Dato en posicion "+i+" : "+miAL.get(i); } } JOptionPane.showMessageDialog(null, mostrarBus); break; case "5"://Bloque para mostar los datos del array list String Salida= ""; for( int i = 0 ; i < miAL.size(); i++){ Salida += "Numero posicion "+i+" : "+miAL.get(i)+"n"; } JOptionPane.showMessageDialog(null, Salida); break; case "6": System.exit(0); break; default: JOptionPane.showMessageDialog(null, "Opcion invalida !"); break; } }while(!op.equals("6")); } } |
import java.util.ArrayList; import javax.swing.JOptionPane; public class arrayLSimple { ArrayList miAL = new ArrayList(); //Array List simple public static void main(String args[]){ arrayLSimple obA = new arrayLSimple(); obA.menu(); } public void menu(){ String op; do{ op = JOptionPane.showInputDialog(null,"1. Introducir daton" +"2. Modificar daton" +"3. Eliminar daton" +"4. Buscar daton" +"5. Mostrar datosn" +"6. Salir"); switch(op){ case "1"://Bloque para introducir datos al array list String a; a = JOptionPane.showInputDialog(null, "Digite dato a ingresar: "); miAL.add(a); break; case "2"://Bloque para Modificar dato del array String b, c; int indice; b = JOptionPane.showInputDialog(null, "Ingrese el dato a Modificar: "); if(miAL.contains(b)){ indice = miAL.indexOf(b); c = JOptionPane.showInputDialog(null, "Ingrese el nuevo dato: "); miAL.set(indice, c); }else{ JOptionPane.showMessageDialog(null, "No existe el dato a modificar !", "", JOptionPane.ERROR_MESSAGE); } break; case "3"://Bloque para eliminar dato del array String d; b = JOptionPane.showInputDialog(null, "Ingrese el dato a eliminar: "); for(int i=0; i<miAL.size(); i++){ if(miAL.get(i).equals(b)){ miAL.remove(i); } } break; case "4"://Bloque para buscar datos en el array list String mostrarBus= "No se ha encontrado nada!", f; c = JOptionPane.showInputDialog(null, "Ingrese el dato a buscar: "); for( int i = 0 ; i < miAL.size(); i++){ if(miAL.get(i).equals(c)){ mostrarBus =""; mostrarBus += "Dato en posicion "+i+" : "+miAL.get(i); } } JOptionPane.showMessageDialog(null, mostrarBus); break; case "5"://Bloque para mostar los datos del array list String Salida= ""; for( int i = 0 ; i < miAL.size(); i++){ Salida += "Numero posicion "+i+" : "+miAL.get(i)+"n"; } JOptionPane.showMessageDialog(null, Salida); break; case "6": System.exit(0); break; default: JOptionPane.showMessageDialog(null, "Opcion invalida !"); break; } }while(!op.equals("6")); } }
Una vez ejecutado el ejemplo veremos el siguiente menú:
Por fa !! ayuda en este ejercicio: Crear dos arraylist y un array normal (el alumno debe elegir el tipo de elementos que va ha tener , por ejemplo enteros)y realiza un programa con el siguiente menu: 1.Rellenar aleatorios (genera 50 numeros aleatorios en el arraylist escogido o del array normal,eliminando su contenido anterios. 2Rellenar con un numero (todos los elementos del arraylist escogido (1 o 2) se rellenan con un mismo numero) 3 Ordenar el arraylist escogido de forma ascendente o descendente. 4 mostrar el contenido del arraylist escogido o del array normal . 5 Borrar el numero del Arraylist escogido (se borra tantas veces como aparezca) 6.Realiza una busqueda binaria en el arraylist escogido.7Ordene al azar el arraylist escogido(metodo shufle).8.Invierte el orden de los elementos del arraylist escogido (metodo reverce).9Copiar el contenido de un arraylist en otro.10Calcula el maximo y minimo del arraylist escogido.11.Añade al final de un arraylist el contenido del array normal (metodo addAll).12.Calcula el numero de veces que se repite un entero en un arraylist (metodo frecuency)..13.Comprueba si los dos arraylist tienen numeros enteros en comun (metodo disjoint). Es mi primer ejercicio de arraylist les agradeceria q me ayudaran ..gracias …
YO necesito por ejemplo, comparar en un arrayList existe un objeto rojo y de ahi en adelante borrar los valores ke siguen hasta ke llegue un objeto de color blanco. Tengo una idea de como hacerlo pero me dicen ke existe un método ke hace algo parecido. Cual es el metodo.
Como puedo crear un arraylist y llenarla con arreglos?
ArrayList arreglos = new ArrayList;
Cómo declaró un array list llamado amortización con tipo de dato cuota utilizando sintaxis de Java en una sola línea de código. Ayuda por favor….
ArrayList amortizacion = new ArrayList;
ArrayList amortizacion = new ArrayList();
porfa necesito ayuda en estos ejercicios
1. Realizar un programa que lea tantos números enteros como desee el usuario y los introduzca en una lista. Mostrar la lista, crear una nueva lista con los elementos en orden invertido, mostrar la lista nueva por pantalla.
2. Realizar un programa que lea tantos números enteros como desee el usuario y los introduzca en una lista. Mostrar la lista, remplazar en la lista cada número por su cuadrado, mostrar la lista resultante.
Me has salvado una práctica de la facultad. Muchas gracias!!!!! 🙂
Entonces si puede solo contener datos de un solo tipo es una pregunta?
No , le puedes pasar lo que quieras 🙂
Excelente aporte a la comunidad Java, muchas gracias !
Entonces si puede solo contener datos de un solo tipo es una pregunta?