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 ...
 
Antiguo 27/05/2015, 03:52
 
Fecha de Ingreso: diciembre-2009
Mensajes: 31
Antigüedad: 16 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
 
Antiguo 27/05/2015, 04:21
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 16 años, 7 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.
 
Antiguo 27/05/2015, 05:58
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 14 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
 
Antiguo 27/05/2015, 10:56
 
Fecha de Ingreso: diciembre-2009
Mensajes: 31
Antigüedad: 16 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 19:01.