Ya antes había hablado sobre los ArrayList En Java Con Ejemplo Un Practico, pero si necesitamos un ArrayList de Objetos? Algo mas complejo e interesante para hacer, ya que agregando la especialidad del dinamismo, encontramos que un espacio del ArrayList en Java puede contener diferentes tipos de datos en él 😀 Así como el ejemplo de arreglo de objetos que había compartido en una anterior entrada. La complejidad para este tipo de concepto es al momento de modificar y eliminar, y no es tanto por lo difícil, sino por el manejo de memoria que hay que tener al momento de las comparaciones. Espero que lo anterior quede mas claro con el ejemplo que daré.
COMO SE CREA UN ARRAYLIST DE OBJETOS EN JAVA
La sintaxis para crear el ArrayList de Objetos es la siguiente:
1 | ArrayList <ClaseDelObjeto> NombreArrayList= new ArrayList <ClaseDelObjeto> (); |
ArrayList <ClaseDelObjeto> NombreArrayList= new ArrayList <ClaseDelObjeto> ();
ClaseDelObjeto => La clase que vamos a emplear para el manejo de los datos del objeto.
NombreArrayList => El nombre del ArrayList que vamos a manipular.
Los anteriores son datos que se reemplazan con los nombres que deseemos y debamos usar. Para usar esta sintaxis debemos de importar las librerias necesarias para usar el ArrayList:
1 | import java.util.ArrayList; |
import java.util.ArrayList;
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.
- 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.
EJEMPLO SENCILLO ARRAYLIST DE OBJETOS EN JAVA
El siguiente es un ejemplo sencillo sobre los ArrayList, podrán encontrar los métodos necesarios para ingresar, modificar, buscar, eliminar y mostrar los datos del ArrayList de Objetos. Primero encontraran la clase del objeto a usar con el ArrayList.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public class ArryL { private int id; private String nom; public ArryL(int cant, String nom){ this.id = cant; this.nom = nom; } public int getId() { return id; } public String getNom() { return nom; } public void setNom(String d) { this.nom = d; } } |
public class ArryL { private int id; private String nom; public ArryL(int cant, String nom){ this.id = cant; this.nom = nom; } public int getId() { return id; } public String getNom() { return nom; } public void setNom(String d) { this.nom = d; } }
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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | import java.util.ArrayList; import javax.swing.JOptionPane; public class EjeArrayL { boolean tal=false; ArrayList <ArryL> Arr=null; public static void main(String args[]){ EjeArrayL obEjeA = new EjeArrayL(); obEjeA.menu(); } public void menu(){ String op; do{ op = JOptionPane.showInputDialog(null,"1. Crear ArrayListn" +"2. Introducir daton" +"3. Modificar daton" +"4. Eliminar daton" +"5. Buscar daton" +"6. Mostrar datosn" +"7. Salir"); switch(op){ case "1"://Bloque para crear el array list if(!tal){ Arr = new ArrayList <ArryL> (); tal=true; JOptionPane.showMessageDialog(null, "Ya se ha creado el array list :D"); }else{ JOptionPane.showMessageDialog(null, "Ya esta creado el Array List", "", JOptionPane.ERROR_MESSAGE); } break; case "2"://Bloque para introducir datos al array list if(!tal){ JOptionPane.showMessageDialog(null, "Crea el array list, usa la opcion 1."); }else{ int a; String b; a = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite el numero a ingresar: ")); b = JOptionPane.showInputDialog(null, "Digite el nombre a ingresar: "); Arr.add(new ArryL(a, b)); } break; case "3"://Bloque para modificar datos al array list if(!tal){ JOptionPane.showMessageDialog(null, "Crea el array list, usa la opcion 1."); }else{ int indice, b; String c; b = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el indice a Modificar: ")); if(existEnArray(b)){ indice = indiceDato(b); c = JOptionPane.showInputDialog(null, "Ingrese el nuevo nombre al indice: "); Arr.get(indice).setNom(c); }else{ JOptionPane.showMessageDialog(null, "No existe el dato a modificar !", "", JOptionPane.ERROR_MESSAGE); } } break; case "4"://Bloque para eliminar dato del array if(!tal){ JOptionPane.showMessageDialog(null, "No existen datos !"); }else{ int id; id = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el Id a eliminar: ")); for(int i=0; i<Arr.size(); i++){ if(Arr.get(i).getId()==id){ Arr.remove(i); } } } break; case "5"://Bloque para buscar datos en el array list if(tal){ String mostrarBus= "No se ha encontrado nada!"; int id; id = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el Id a buscar: ")); for( int i = 0 ; i < Arr.size(); i++){ if(Arr.get(i).getId()==id){ mostrarBus =""; mostrarBus += "Numero posicion "+i+" : "+Arr.get(i).getId(); mostrarBus += "nNombre posicion "+i+" : "+Arr.get(i).getNom(); mostrarBus += "n"+"n"; } } JOptionPane.showMessageDialog(null, mostrarBus); }else{ JOptionPane.showMessageDialog(null, "Crea el array list, usa la opcion 1."); } break; case "6"://Bloque para mostar los datos del array list if(tal){ String Salida= ""; for( int i = 0 ; i < Arr.size(); i++){ Salida += "Numero posicion "+i+" : "+Arr.get(i).getId(); Salida += "nNombre posicion "+i+" : "+Arr.get(i).getNom(); Salida += "n"+"n"; } JOptionPane.showMessageDialog(null, Salida); }else{ JOptionPane.showMessageDialog(null, "Crea el array list, usa la opcion 1."); } break; case "7": System.exit(0); break; default: JOptionPane.showMessageDialog(null, "Opcion invalida !"); break; } }while(!op.equals("7")); } public boolean existEnArray(int bus){ boolean saber=false; for(int i=0; i<= Arr.size(); i++){ if(Arr.get(i).getId()==bus){ saber=true; break; } } return saber; } public int indiceDato(int bus){ int j=0; for (int i=0 ;i < Arr.size(); i++) { if(Arr.get(i).getId()== bus){ j=i; break; } } return j; } } |
import java.util.ArrayList; import javax.swing.JOptionPane; public class EjeArrayL { boolean tal=false; ArrayList <ArryL> Arr=null; public static void main(String args[]){ EjeArrayL obEjeA = new EjeArrayL(); obEjeA.menu(); } public void menu(){ String op; do{ op = JOptionPane.showInputDialog(null,"1. Crear ArrayListn" +"2. Introducir daton" +"3. Modificar daton" +"4. Eliminar daton" +"5. Buscar daton" +"6. Mostrar datosn" +"7. Salir"); switch(op){ case "1"://Bloque para crear el array list if(!tal){ Arr = new ArrayList <ArryL> (); tal=true; JOptionPane.showMessageDialog(null, "Ya se ha creado el array list :D"); }else{ JOptionPane.showMessageDialog(null, "Ya esta creado el Array List", "", JOptionPane.ERROR_MESSAGE); } break; case "2"://Bloque para introducir datos al array list if(!tal){ JOptionPane.showMessageDialog(null, "Crea el array list, usa la opcion 1."); }else{ int a; String b; a = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite el numero a ingresar: ")); b = JOptionPane.showInputDialog(null, "Digite el nombre a ingresar: "); Arr.add(new ArryL(a, b)); } break; case "3"://Bloque para modificar datos al array list if(!tal){ JOptionPane.showMessageDialog(null, "Crea el array list, usa la opcion 1."); }else{ int indice, b; String c; b = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el indice a Modificar: ")); if(existEnArray(b)){ indice = indiceDato(b); c = JOptionPane.showInputDialog(null, "Ingrese el nuevo nombre al indice: "); Arr.get(indice).setNom(c); }else{ JOptionPane.showMessageDialog(null, "No existe el dato a modificar !", "", JOptionPane.ERROR_MESSAGE); } } break; case "4"://Bloque para eliminar dato del array if(!tal){ JOptionPane.showMessageDialog(null, "No existen datos !"); }else{ int id; id = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el Id a eliminar: ")); for(int i=0; i<Arr.size(); i++){ if(Arr.get(i).getId()==id){ Arr.remove(i); } } } break; case "5"://Bloque para buscar datos en el array list if(tal){ String mostrarBus= "No se ha encontrado nada!"; int id; id = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el Id a buscar: ")); for( int i = 0 ; i < Arr.size(); i++){ if(Arr.get(i).getId()==id){ mostrarBus =""; mostrarBus += "Numero posicion "+i+" : "+Arr.get(i).getId(); mostrarBus += "nNombre posicion "+i+" : "+Arr.get(i).getNom(); mostrarBus += "n"+"n"; } } JOptionPane.showMessageDialog(null, mostrarBus); }else{ JOptionPane.showMessageDialog(null, "Crea el array list, usa la opcion 1."); } break; case "6"://Bloque para mostar los datos del array list if(tal){ String Salida= ""; for( int i = 0 ; i < Arr.size(); i++){ Salida += "Numero posicion "+i+" : "+Arr.get(i).getId(); Salida += "nNombre posicion "+i+" : "+Arr.get(i).getNom(); Salida += "n"+"n"; } JOptionPane.showMessageDialog(null, Salida); }else{ JOptionPane.showMessageDialog(null, "Crea el array list, usa la opcion 1."); } break; case "7": System.exit(0); break; default: JOptionPane.showMessageDialog(null, "Opcion invalida !"); break; } }while(!op.equals("7")); } public boolean existEnArray(int bus){ boolean saber=false; for(int i=0; i<= Arr.size(); i++){ if(Arr.get(i).getId()==bus){ saber=true; break; } } return saber; } public int indiceDato(int bus){ int j=0; for (int i=0 ;i < Arr.size(); i++) { if(Arr.get(i).getId()== bus){ j=i; break; } } return j; } }
Al ejecutar el programita veremos que se muestra como la imagen al inicio del post, espero que la pequeña explicación y el ejemplo sea de gran utilidad para ustedes, solo recuerden que pueden modificar las clases para adaptarlo a sus necesidades 🙂
Puede ser que termina en el case 4 el codigo ?
case «4»://Bloque para eliminar dato del array
if(!tal){
JOptionPane.showMessageDialog(null, «No existen datos !»);
}else{
int id;
id = Integer.parseInt(JOptionPane.showInputDialog(null, «Ingrese el Id a eliminar: «));
for(int i=0; i
¿¿¿???
Muchas gracias por compartirlo
La variable «tal» que esta declarada como falsa que es lo que hace?
Es una variable de control, con esta se verifica si se ha creado o no el arrayList.
Una preguntar como seria que este código corra pero en modo consola, con los mismos métodos. Trate de de modificarlo. pero no me fue posible. Por favor ayuda. Necesito algo similar pero para que se visualice en modo consola.
sra que podia subir este ejercicio
NOMBRE:
FECHA:
El departamento de audiovisuales desea contratar los servicios profesionales para el diseño de una aplicación en JAVA para ello hace los siguientes requerimientos:
1. El sistema debe tener un usuario con el rol de administrador (usuario y contraseña).
2. El administrador podrá modificar sus datos personales y contraseña.
3. Permitir el registro de los datos del equipo audiovisual como son: Serial, marca, modelo, nombre, fecha del préstamo, fecha de devolución, cantidad.
4. Permitir el registro de usuarios con los roles administrativo o docente, ambos heredan de la clase persona.
5. Validar que el usuario que solicita un préstamo no tenga otros pendientes.
6. Validar que el equipo audiovisual esté disponible en el momento del préstamo.
7. Listar los equipos que estén prestados.
8. Listar los equipos que no se hayan entregado en la fecha pactada.
9. Permitir la actualización de un registro.
10. Permitir la búsqueda por documento de identidad de un usuario específico
NOTA: Expresa tu creatividad y relaciona los temas vistos hasta el momento. (ArrayList y cuadros de dialogo)
No se puede agregar mas de un objeto al arraylist?
al querer mostrar el arraylist solo me muestra el ultimo elemento que se agregó…
¿Como puedo crear una máscara de ceros y uno para una secuencia de números de tal forma que se asigne un 0 para los valores positivos y el 1 para los negativos.
ejemplo: La secuencia: 1, -3, -5, 8, 9, -6, -43, -8 tendría la siguiente máscara: 01100111.
Con una condicional, if(numero < 0) es por que el numero es negativo (-3, -5, -6, -43, -8), else if (numero > 0 ) es por que el numero es positivo (1, 8, 9); dentro cada condicional añadir los valores al arraylist y listo!
Hola, que tal. Disculpa y si quiero que al momento de buscar, lo haga mediante el nombre y no el número? Cual código pondría?
Que tal amigo
tengo un programa que Elimina datos de mi Tabla(BD)
mi Duda es que los puedo Eliminar ingresando por jTextfield
Uno por Uno
pero necesito mandar una lista de codigos a Eliminar
los guarde toda la lista en un ArrayList
Ahora nose como hacer para ese Arraylist de mis codigos a Eliminar
hacer la conexion con mi Procedimiento
Disculpa tengo un arrayList de objetos pero a la hora de imprimir me manda datos extraños como por ejemplo @72006539 lo estoy llenando de una BD. Tendrían alguna recomendación para solucionar este error.
Para mostrar los elementos de un arraylist podrias hacerlo con un for no se si me equivoco.
for(nombreclase nombres : nombrearray){
nombres.mostrar();
}
si me equivoco corrigenme
Hola muy buen video .una duda como seria en una Interfaz Grafica de Usuario(GUI) con Jframe,botones, etiquetas y cajas de texto .muchas gracias por tu tiempo saludos exitos
Hola
Esta muy bueno el ejemplo del ArrayList. Gracias.
Pero cuando abro el programa o clase Main en mi Ipad, el codigo se ve recortado en la parte derecha y no pudo ver como terminan algunas instrucciones.
Me podrias mandar el codigo a mi email , por favor. Lo mas pronto que te lo permita tu tiempo. Nuevamente gracias
Atentamente,
Gustavo Botero
Email gustavobotero5@yahoo.com
Te he enviado el mail, pero ha rebotado, esta correcto el mail que das?
Hola me gustaria ver todo el codigo para ejercutarlo incluyendo las Clases o es todo el codigo el usado ?????
Hola compañero, el código es todo el que aparece en el post. En la sección donde dice Ejemplo Sencillo ArrayList… Es donde encuentras todo el código. Espero te sirva. Modificalo y mejoralo a tu gusto. Saludos .
Muy buen post, explica muy bien como trabajar el array list cuando se tienen objetos 🙂
olas un favor qiero INTERCAMBIAR EL PRIMER ELEMENTO PAR CON EL PRIMER ELEMENTO IMPAR en un arreglo , como haria ?? por vaor ayudeme
Una pregunta yo estoy haciendo un programa que usa Arraylist en java pero estoy usando ventanas, primero esta mi ventana principal donde esta el botón para mi ventana «registro» y en la ventana registro es donde ingreso los datos a la lista pero cuando cierro la ventana registro y regreso a la ventana principal y luego abro de nuevo la ventana «registro» los datos ya no están. Que puedo estar haciendo mal o como solucionar esto!? Muchas gracias
Hola, segun lo que entiendo de lo que dices, es que tienes una ventana para registrar, donde muestras los resultados? Si tienes una ventana para registrar datos, piensas mostrarlos ahi mismo? Si quieres mostrarlo en esa ventana, cada vez que se ejecute el evento tendras que mirar si el arraylist esta vacio o lleno, si esta vacio no muestra nada, pero si contiene datos se muestre. Exitos!
me podrias ayudar con codigos para una agenda telefonica
Estimado
Donde podemos aprender aquellos que queremos saber mas sobre eclipse java swing con java??
Codigos fuentes leible para practicar y mejorar en algunos casos??