Foros del Web » Programación para mayores de 30 ;) » Java »

Array de Pilas

Estas en el tema de Array de Pilas en el foro de Java en Foros del Web. Pues una cosa tan sencilla, y tan tonta, pero que no me sale. Estoy utilizando la clase Stack de java y quiero tener un array ...
  #1 (permalink)  
Antiguo 24/06/2011, 10:29
 
Fecha de Ingreso: mayo-2007
Mensajes: 200
Antigüedad: 17 años, 6 meses
Puntos: 1
Array de Pilas

Pues una cosa tan sencilla, y tan tonta, pero que no me sale.
Estoy utilizando la clase Stack de java y quiero tener un array de 20 pilas.

Si hago esto:

Código Java:
Ver original
  1. Stack <Integer>pilas[];
  2. for(int i=0; i<20; i++)
  3.      pilas[i] = new Stack<Integer>();

Me da un Pointer Null Exception.

Y esto me da error directamente:
Código Java:
Ver original
  1. Stack <Integer>pilas[];
  2.       pilas = new Stack()[20];

¿Cómo hay que ponerlo?
__________________
Blog: http://a-dream-of-dragon.blogspot.com
  #2 (permalink)  
Antiguo 24/06/2011, 13:40
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: Array de Pilas

Creo que no se puede.

Cita:
Stack <Integer>pilas[];
pilas = new Stack[20] ;
Esto no te debería dar problemas, y después creas los Stack con el <Integer>, java recuerda como han sido creados. Pero es preferible que uses un List de Stacks
__________________
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.
  #3 (permalink)  
Antiguo 24/06/2011, 16:24
Avatar de sivadmp  
Fecha de Ingreso: febrero-2011
Ubicación: La Paz - Bolivia
Mensajes: 293
Antigüedad: 13 años, 10 meses
Puntos: 20
Respuesta: Array de Pilas

hola

por que no lo haces de esta forma

Código JAVA:
Ver original
  1. Stack<Object> v[]=new Stack[20];
  2.        
  3.         for (int i = 0; i < v.length; i++) {
  4.             v[i]=new Stack<Object>();
  5.             v[i].add("AAA "+i);
  6.         }
  7.         for (int i = 0; i < v.length; i++) {
  8.             System.out.println(v[i].get(0));
  9.         }

:)saludos
__________________
agradecer no cuesta nada
Entre más información proporciones más fácil será ayudarte, y asi evitar adivinar el problema con el que cuentas.
  #4 (permalink)  
Antiguo 24/06/2011, 16:41
 
Fecha de Ingreso: mayo-2007
Mensajes: 200
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Array de Pilas

Sip, al final he usado una de estas 2 declaraciones que hacen lo mismo:

Código Java:
Ver original
  1. Stack <Integer> [] pilas = new Stack[20];
  2. Stack <Integer> [] pilas = (Stack<Integer>[])new Object[20] ;

Compila. Lo único es que me da un warning que no he conseguido quitar todavía:
Código Java:
Ver original
  1. Type safety: The expression of type Stack[] needs unchecked conversion to conform to Stack<Integer>[]            
  2. (con la primera definición)
  3.  
  4. Type safety: Unchecked cast from Object[] to Stack<Integer>[]    
  5. (con la segunda definición)
__________________
Blog: http://a-dream-of-dragon.blogspot.com
  #5 (permalink)  
Antiguo 25/06/2011, 02:56
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: Array de Pilas

El warning se ignora con @SuppressWarnings
__________________
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.
  #6 (permalink)  
Antiguo 25/06/2011, 15:25
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 17 años
Puntos: 41
Respuesta: Array de Pilas

Tanto despelote para emular una matriz o un array de array's?
Es poco legible lo que intentás hacer y encima que ninguno de los códigos son válidos

Cita:
Iniciado por vrael Ver Mensaje
Sip, al final he usado una de estas 2 declaraciones que hacen lo mismo:
Código Java:
Ver original
  1. //NO HACEN LO MISMO
  2. Stack <Integer> [] pilas = new Stack[20];
  3. //Y esta no funciona
  4. Stack <Integer> [] pilas = (Stack<Integer>[])new Object[20] ;
No hacen lo mismo y la 2da tiene un error en tiempo de ejecución, deberías testear tu código antes de afirmar cosas.
__________________
BadProgrammerException!

Última edición por FiruzzZ; 25/06/2011 a las 15:30

Etiquetas: pilas
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 23:18.