ArrayList y variable estatica (ayuda)

Iniciado por juan_1, 24 Abril 2020, 23:38 PM

0 Miembros y 1 Visitante están viendo este tema.

juan_1

Estoy realizando un ejercicio de POO en Java y tengo un problema,
Tengo una Clase llamada Articulo con una variable estatica llamada Codigo que se incrementa cada vez que añado un codigo, despues tengo otra clase almacen donde estan los metodos para agregar articulos, borrar etc que los almaceno en un ArrayList.
Mi problema es el siguiente, al ejecutar el programa se me crean 10 articulos, por lo que el ultimo codigo es el 10, ahora, cuando borro 3 articulos por ejemplo y despues añado 1, tendria un total de 8 articulos y el ultimo con codigo 11, por lo que cuando intento borrar el 11 me dice el error de IndexOutOfBounds porque se sale del array y no se muy bien como hacerlo, y que salte un error de "ese codigo ha sido eliminado" por ej y poder escribir otro codigo

K-YreX

No es lo mismo hablar del índice que del código. Como ves tu programa no mantiene una correspondencia entre una cosa y otra por lo que no puedes borrar un artículo por su código pensando que va a estar en el índice del array igual a su código. Tendrías que pensar cómo quieres borrar el artículo:
  • Por índice -> Compruebas que el índice sea menor a la longitud del ArrayList y en caso de no serlo muestras un mensaje de error.
  • Por código -> Recorres el ArrayList para buscar el artículo con ese código y si lo encuentras, lo eliminas; sino, puedes mostrar un mensaje de error también.

    Ahora prueba a codificar la opción que quieras y si tienes algún problema pon tu código entre etiquetas de Código GeSHi eligiendo el lenguaje apropiado (Java).
    Suerte. :-X
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

juan_1

Muchas gracias por tu tiempo y tu respuesta, así lo hice y todo bien. Un cordial saludo !