Java - Problemas con un vector de arrays

   
Vista:

Problemas con un vector de arrays

Publicado por José (6 intervenciones) el 20/12/2007 11:30:27
Wuenas, estoy haciendo una práctica donde en un vector almaceno array de enteros, de diferentes tamaños, como una lista de arrays. El problema está en que una vez que estoy en una posición del vector (o lista) ¿como accedo a cada posición del array??? Cuando almacenas referencias a una clase, con hacer un casting ya se puede, pero para array???he intentado hacer un casting con (int []) pero me dice que nop.

Una ayuda que estoy atascado.

Muchas gracias y felices fiestas
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

RE:Problemas con un vector de arrays

Publicado por putahostia (69 intervenciones) el 20/12/2007 12:28:25
Si que funciona:

Vector v = new Vector();

int[] i1 = new int[2];
i1[0] = 1;
i1[1] = 2;
v.add(i1);

int[] i2 = new int[2];
i2[0] = 10;
i2[1] = 20;
v.add(i2);

int[] x1 = (int[])v.elementAt(0);
for(int i = 0; i < 2; i++){
System.out.print(x1[i] + " ");
}

System.out.println();

int[] x2 = (int[])v.elementAt(1);
for(int i = 0; i < 2; i++){
System.out.print(x2[i] + " ");
}
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

RE:Problemas con un vector de arrays

Publicado por José (6 intervenciones) el 20/12/2007 15:44:09
Wuenas, ante todo muchas gracias por contestar.
Al hacerlo me lanza la excepción siguiente:

Exception in thread "main" java.lang.ClassCastException: java.util.Vector
at Nonograma.main(Nonograma.java:67)
La línea 67 contiene int x[]=(int [])aux2.elementAt(1);

Pero creo que el problema esta en como hacer la lista de array, yo llamo a una función recursiva, que devuelve un vector. La función recursiva lo que hace es q cuando llena un array de longitud k, añado el array al vector y devuelvo el vector. Este es el if o condición de parada. Después dentro de un for tengo la llamada recursiva, cuya salida la añado al vector, al final devuelvo el vector auxiliar. Haber si me podeis ayudar porque no se como seguir, pongo la función recusiva:

public static Vector buscafila (int array [], int longi, int pos[], int k, int longarray){
Vector auxiliar=new Vector();
if (k==longarray) {
auxiliar.addElement(pos);
return auxiliar;}
for (int i=array[k]+pos[k]; i<(longi-aux-(longarray-k));i++){
pos[k+1]=i;
auxiliar.addElement(buscafila(array,longi,pos,k+1,longarray));}
return auxiliar;

Muchas gracias
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

RE:Problemas con un vector de arrays

Publicado por putahostia (69 intervenciones) el 20/12/2007 16:13:07
La variable aux (la que está en el for) peta. La tendrás como global por ahí.
De todas formas no puedo probarlo. Si quieres mándame al correo este trozo de código empaquetado. Todo lo que está conectado con el tema.
Y prueba una cosilla. En vez de int[] como parámetro, manda Object[] o Integer[]. Luego lo haces a int[] en el método. Al vector le da igual.
Las matrices de tipos primitivos en java tienen una puñetera costumbre de pasarse por referencia. Se que es un coñazo, pero los de Sun no se complicaron en su dia y a... toca sufrir.
Pues esto, prueba con Integer, que es lo mismo que Object.
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

RE:Problemas con un vector de arrays

Publicado por putahostia (69 intervenciones) el 20/12/2007 16:14:54
Se me olvidaba. En este hilo http://www.lawebdelprogramador.com/news/mostrar_new.php?id=44&texto=Java&n1=476358&n2=0&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0
el colega tiene un problemilla algo parecido al tuyo. No se si lo has visto ...
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

RE:Problemas con un vector de arrays

Publicado por José (6 intervenciones) el 20/12/2007 23:44:37
Wuenas, antes de nada MUCHAS GRACIAS
Voy a intentar solucionarlo, si no te lo mando.

Felices fiestas
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