Java - problemas con array al presentar datos en pantalla

 
Vista:
sin imagen de perfil
Val: 89
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

problemas con array al presentar datos en pantalla

Publicado por jose maria (85 intervenciones) el 12/08/2016 11:47:53
hola, soy nuevo y utilizo bluej....
tengo una clase con un array donde se agregan objetos, cuando voy a presentar esa informacion en pantalla, lo primero que hago es presentar la cantidad de objetos que hay:

System.out.println("el tamaño de facturas es: "+facturas.size());

pero luego al segir con el for que lo recorre, solo me presenta en pantalla la mitad....
¿que puede ocurrir?
dejo el codigo del for, gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public void PresentarFacturasGuardadas()
{
	for (int i = 0; i <=facturas.size() - i; i++)
	{
		System.out.println("el valor del bucle i= "+i);
		System.out.println("el tamaño de facturas es: "+facturas.size());
		System.out.println();
		System.out.println("factura numero: "+facturas.get(i).getIndice());
		System.out.println("Nombre del cliente: "+facturas.get(i).getnombrefac()+" "+
													facturas.get(i).getapellido1fac()+" "+
													facturas.get(i).getapellido2fac());
		//System.out.println("Factura num: "+facturas.get(i).getIndice());
		System.out.println("Importe: "+facturas.get(i).getImporte()+"€");
		System.out.println("-------------------------------------");
 
	}
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

problemas con array al presentar datos en pantalla

Publicado por Tom (1831 intervenciones) el 12/08/2016 12:09:27
¿¿ for (int i = 0; i <=facturas.size() - i; i++) ??
Te complicas la vida de formas que te hacen cometer errores tontos ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Charly
Val: 178
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

problemas con array al presentar datos en pantalla

Publicado por Charly (118 intervenciones) el 12/08/2016 12:36:53
Mira, es asi de facil:
1
2
3
4
5
6
7
8
9
public void PresentarFacturasGuardadas(){
     System.out.println("el tamaño de facturas es: "+facturas.size());
     for(Factura f:facturas){
          System.out.println("factura numero: "+facturas.get(i).getIndice());
          System.out.println("Nombre del cliente: "+facturas.get(i).getnombrefac()+" "+
          facturas.get(i).getapellido1fac()+" "+facturas.get(i).getapellido2fac());
          System.out.println("Importe: "+facturas.get(i).getImporte()+"€");
     }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 89
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

problemas con array al presentar datos en pantalla

Publicado por jose maria (85 intervenciones) el 12/08/2016 13:04:34
gracias, pero eso segun lo pones no compilaria, ya que eliminamos la variable i.....
aunque la forma de hacer el bucle, la intentare....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Charly
Val: 178
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

problemas con array al presentar datos en pantalla

Publicado por Charly (118 intervenciones) el 12/08/2016 13:09:34
Si tienes razón, perdona.
Cambia la i por la f.
Debería funcionar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con array al presentar datos en pantalla

Publicado por Tom (1831 intervenciones) el 12/08/2016 13:32:12
A ver, joé, que en tu código has puesto una i dónde debería ir un 1.
Además en algo que es absurdamente innecesario:

1
for(int i = 0; i < facturas.size(); i++) {}

que sería mejor hacer así:

1
2
3
4
5
for(int i = 0, max = facturas.size(); i < max; i++) {
  Factura act = facturas.get(i);
 
  System.out.println("factura numero: " + act.getIndice());
}

Lo que nos llevaría a la forma ("enhanced for")que te han comentado:

1
2
3
for(Factura act : facturas) {
      System.out.println("factura numero: " + act.getIndice());
  }

Ah! y que te leas el manual, joé !

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 89
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

problemas con array al presentar datos en pantalla

Publicado por jose maria (85 intervenciones) el 12/08/2016 16:45:28
gracias por tu comentario, voy a volver a colocar algo de mi post....
"hola, soy nuevo y utilizo bluej...."
le echare un vistazo a ese manual, por lo pronto cosas que ni tenia idea que se podian hacer=

for(int i = 0, max = facturas.size(); i < max; i++) {
Factura act = facturas.get(i);

entiendo que max sera máximo, pero no conocía esa signatura, y lo de factura act... tampoco se lo que es act....

gracias nuevamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar