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:
ArrayList NombreArrayList= new ArrayList ();
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:
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.
+ Ver Clase Objeto ArrayList…
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;
}
}
+ Ver Clase Main ArrayList…
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class EjeArrayL {
boolean tal=false;
ArrayList 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 ();
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 🙂
Si te ha gustado el post, compártelo, regala un like ó comenta 😉
¿Te ha resultado útil este artículo?
Demuestra tu apoyo dándole un pulgar arriba para seguir escribiendo SEO técnico.