Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] busqueda en ArrayList de objetos

Estas en el tema de busqueda en ArrayList de objetos en el foro de Java en Foros del Web. Hola a todos, me estoy peleando con un programa y no soy capaz a sacarlo, tengo una clase llamada "Cuenta" y un main en otro ...
  #1 (permalink)  
Antiguo 27/05/2015, 03:52
 
Fecha de Ingreso: diciembre-2009
Mensajes: 31
Antigüedad: 12 años
Puntos: 0
Pregunta busqueda en ArrayList de objetos

Hola a todos, me estoy peleando con un programa y no soy capaz a sacarlo, tengo una clase llamada "Cuenta" y un main en otro archivo donde tengo un menu con tres opciones, la primera es añadir una cuenta (en un arraylis) en la segunda listar todas las cuentas, y en la tercera mostrar los datos de una cuenta concreta- La primera y segunda las he sacado pero la tercera de las busquedas soy incapaz a sacarla, os pongo el codigo de los tres casos que llevo hasta ahora a ver que os parece:
Código Java:
Ver original
  1. case 1:
  2.                     // Añadir nueva cuenta
  3.                     Cuenta newCuenta = new Cuenta();
  4.                     System.out.println("Introduzca nombre del cliente: ");
  5.                     dato = teclado.nextLine();
  6.                     newCuenta.setNombre(dato);
  7.                     System.out.println("Introduzca apellidos del cliente: ");
  8.                     dato = teclado.nextLine();
  9.                     newCuenta.setApellidos(dato);
  10.                     System.out.println("Introduzca fecha de nacimiento del cliente: ");
  11.                     dato = teclado.nextLine();
  12.                     newCuenta.setFechaNacim(dato);
  13.                     System.out.println("Introduzca saldo inicial: ");
  14.                     numero = teclado.nextInt();
  15.                     newCuenta.setSaldoInic(numero);
  16.                     System.out.println("Introduzca numero de cuenta: ");
  17.                     numero = teclado.nextInt();
  18.                     newCuenta.setCcc(numero);                  
  19.                     System.out.println("Introduzca tipo de interes: ");
  20.                     numero = teclado.nextInt();
  21.                     newCuenta.setInteres(numero);                  
  22.                     // Añadimos el objeto "cuenta" al ArrayList
  23.                     listadoCuentas.add(newCuenta);
  24.                     System.out.println("-------------------------------------");
  25.                     System.out.println("Cuenta creada correctamente");
  26.                     System.out.println("Pulsar cualquier tecla para continuar");
  27.                     teclado.nextLine();
  28.                     break;
Código Java:
Ver original
  1. case 2:
  2.                     // Imprimimos los elementos del ArrayList
  3.                     System.out.println("Listado de cuentas: ");
  4.                     System.out.println("-------------------------------------");
  5.                     Iterator<Cuenta> itrCuentas = listadoCuentas.iterator();
  6.                     while(itrCuentas.hasNext()){
  7.                         Cuenta cuenta = itrCuentas.next();
  8.                         System.out.println(cuenta.getCcc() + " / "
  9.                                 + cuenta.getNombre() + " "
  10.                                 + cuenta.getApellidos() + " / "
  11.                                 + cuenta.getSaldo() + "€");
  12.                     }
  13.                     System.out.println("Pulsar cualquier tecla para continuar");
  14.                     teclado.nextLine();
  15.                     break;
Código Java:
Ver original
  1. case 3:                
  2.                     // Imprimimos los elementos del elemento buscado
  3.                     System.out.println("Introduzca numero de cuenta: ");
  4.                     numero = teclado.nextInt();
  5.                     itrCuentas = listadoCuentas.iterator();
  6.                     while(itrCuentas.hasNext()){
  7.                         Cuenta cuenta = itrCuentas.next();
  8.                         if(listadoCuentas.contains(numero))
  9.                             System.out.println(cuenta.getCcc() + " / "
  10.                                     + cuenta.getNombre() + " "
  11.                                     + cuenta.getApellidos() + " / "
  12.                                     + cuenta.getSaldo() + "€");
  13.                     }              
  14.                     break;
El case3 s el que me da problemas probe de diferentes formas pero no hay manera de que apartir del numero de cuenta me muestre los datos bancarios de dicha cuenta.
Gracias de antemano
  #2 (permalink)  
Antiguo 27/05/2015, 04:21
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 12 años, 6 meses
Puntos: 306
Respuesta: busqueda en ArrayList de objetos

Si listadoCuentas es un List de Cuenta ¿cómo esperas que java sepa que cuando le pasas un número a contains sepa que tiene que comprobar el campo cc?

O recorres la lista y en cada elemento comparas su cc con el número que le pasas o sobreescribes el método equals de Cuenta

http://tutorials.jenkov.com/java-col...de-equals.html
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 27/05/2015, 05:58
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 10 años, 9 meses
Puntos: 78
Respuesta: busqueda en ArrayList de objetos

Hola sbcuervo,
En el caso 3 puedes hacer la comprobación de la siguiente manera:

Código Java:
Ver original
  1. while(itrCuentas.hasNext()){
  2.                         Cuenta cuenta = itrCuentas.next();
  3.                         if(cuenta.getCcc().equals(numero))
  4.                             System.out.println(cuenta.getCcc() + " / "
  5.                                     + cuenta.getNombre() + " "
  6.                                     + cuenta.getApellidos() + " / "
  7.                                     + cuenta.getSaldo() + "€");
  8.                     }

Tú estás comparando directamente con el objeto, pero Java no sabe que quieres comprobar el atributo "ccc".

Saludos!!

Última edición por ElAthlit; 27/05/2015 a las 06:54
  #4 (permalink)  
Antiguo 27/05/2015, 10:56
 
Fecha de Ingreso: diciembre-2009
Mensajes: 31
Antigüedad: 12 años
Puntos: 0
Respuesta: busqueda en ArrayList de objetos

Un millooooon de gracias a los dos, ya no sabia que mas probar, no sabia utilizar el equals, esta ya no se me olvida.

:):):):)

Etiquetas: arraylist, busqueda, clase, objetos, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:24.