Autor
|
Tema: Ayuda, obtener datos de Objetos en ArrayList (Leído 8,126 veces)
|
touchi
Desconectado
Mensajes: 8
|
Ahí organice un poco el despelote, gracias por sus respuestas voy a ponerme a terminar el ejercicio en base a tu ejemplo. Espero salga todo bien, gracias por tomarse el tiempo de darme una mano.
|
|
|
En línea
|
|
|
|
Usuario Invitado
Desconectado
Mensajes: 625
|
De nada, siempre es grato ser de ayuda. Dado que éste tema se ha extendido mucho, ante alguna duda nueva crea otro tema.
Saludos.
PD: Lee sobre el patrón MVC y aplícalo a tu proyecto.
|
|
|
En línea
|
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
|
|
|
touchi
Desconectado
Mensajes: 8
|
Vuelvo aquí con mas dudas, el código de la parte Reportes es algo así, gracias a Gus me ilumino. Lo que tengo en duda es.... en el código public ReporteArticulo(ArrayList<Articulo> listaArticulos) { } public int[] getExistenciaTiposProductos(int tipo) { final int TODOS = -1; final int TIPO_1 = 0; final int TIPO_2 = 0; int tipo1cantidad = 0; int tipo2cantidad = 0; int requestCategoryExistences = 0; for(Articulo articulo : listaArticulos) { if(tipo != TODOS) { if(articulo.getTipo() == tipo) { requestCategoryExistences++; } } else { if(articulo.getTipo() == TIPO_1) tipo1cantidad++; if(articulo.getTipo() == TIPO_2) tipo2cantidad++; } } if(tipo != TODOS) return new int[] { requestCategoryExistences }; else return new int[] {tipo1cantidad, tipo2cantidad}; } public Double getTotalDineroProductos () { for(Articulo articulo : listaArticulos) { montoTotal += articulo.getPrecio(); } return montoTotal; } public Articulo getProductoMasCaro() { Articulo masCaro = listaArticulos.get(0); for(Articulo articulo : listaArticulos) { if(articulo.getPrecio()> masCaro.getPrecio()) masCaro = articulo; } return masCaro; }
Como lo hizo Gus comparaba los tipos según los datos ingresados un poco mas arriba, ahora.... yo a los datos los tengo en un ArrayList en donde estan TODOS los datos "codigo, tipo, precio,etc" si uso el codigo tal cual pero llamando a los datos del Array estaría recorriendo siempre el mismo Articulo? debería usar un interator?
|
|
|
En línea
|
|
|
|
Usuario Invitado
Desconectado
Mensajes: 625
|
No, la estructura que use para recorrer la lista de productos se llama foreach. Se usa principalmente cuando solo quieres recorrer para extraer inormacion y no para realizar operaciones con los elementos de la lista. Para lo otro se usa un iterator o un for común. El foreach recorre elemento por elemento y el elemento actual es representado por la variable ProductVO (obviamente es necesario que sea del tipo de objeto que almacena la lista): for(ProductVO product : productsList)
|
|
|
En línea
|
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
|
|
|
touchi
Desconectado
Mensajes: 8
|
Debuggeando el programa nos da el error que esta detallado abajo, pero checkeando el tamaño de "listaArticulos" (usando size(); en el arrayList) y efectivamente devuelve datos. public String getProductoMasCaro () { masCaro = listaArticulos.get(0); // esta linea tira un error de Method "get" is called on null object. for(Articulo articulo : listaArticulos) { if(articulo.getPrecio()> masCaro.getPrecio()) masCaro = articulo; } return masCaro.getNombre(); }
|
|
|
En línea
|
|
|
|
Usuario Invitado
Desconectado
Mensajes: 625
|
¿Qué error detallado? Yo no veo nada.
Update: El error es el que has puesto como comentario, ya lo ví.
Acostúmbrate a analizar el rastreo de pila que bota la VM cuando hay una excepción. Allí hay mucha info.
Te está diciendo que listaArticulos está sin inicializar. ¿Dónde creas los productos y los guardas en la lista? Muéstrame ese trozo de código.
|
|
« Última modificación: 28 Febrero 2015, 23:24 pm por Gus Garsaky »
|
En línea
|
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
|
|
|
touchi
Desconectado
Mensajes: 8
|
Ya lo pude solucionar, faltaba pasar los datos por parámetro en la función. Los datos pasaban y cuando llegaban a la función "se borraban". Muchísimas gracias Gus y disculpa por no hacer las cosas debidamente, la verdad estaba un tanto desesperado por que se me viene encima el examen y no podía ni hacer funcionar la aplicación de practica. Mil gracias por ayudar a los que comentaron!!! public String getProductoMasCaro (ArrayList <Articulo > listaArticulos ) { //esto soluciono el problema masCaro = listaArticulos.get(0); for(Articulo articulo : listaArticulos) { if(articulo.getPrecio()> masCaro.getPrecio()) masCaro = articulo; } return masCaro.getNombre(); }
|
|
|
En línea
|
|
|
|
Usuario Invitado
Desconectado
Mensajes: 625
|
¿Todo solucionado entonces? Genial. Fue un placer haber ser de ayuda. Cualquier duda nueva no dudes en crear un tema.
Saludos!
|
|
|
En línea
|
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
consulta ciclo for 100.000.000 de datos en un arraylist
Java
|
neomadara
|
2
|
1,799
|
1 Mayo 2014, 22:04 pm
por ivancea96
|
|
|
ArrayList varios tipos de Objetos
Java
|
Winterz
|
0
|
1,722
|
28 Mayo 2014, 17:36 pm
por Winterz
|
|
|
¿Cómo manejar un ArrayList de objetos?
Java
|
luchi
|
2
|
3,012
|
3 Septiembre 2016, 18:28 pm
por luchi
|
|
|
Obtener datos de un ArrayList [Editado]
Java
|
i33naxo
|
0
|
2,387
|
12 Diciembre 2016, 23:26 pm
por i33naxo
|
|
|
Ayuda agregando objetos a un ArrayList
Java
|
Casvill
|
6
|
2,614
|
7 Enero 2019, 21:31 pm
por antopixel
|
|