Java - problemas con array al presentar datos en pantalla

 
Vista:
sin imagen de perfil
Val: 135
Ha mantenido su posición 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 (1627 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: 206
Ha mantenido su posición 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: 135
Ha mantenido su posición 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: 206
Ha mantenido su posición 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 (1627 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: 135
Ha mantenido su posición 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