Java - pregunta sobre arrays

 
Vista:

pregunta sobre arrays

Publicado por Alan (28 intervenciones) el 14/08/2007 15:40:34
Hola, tengo una duda, yo tengo 3 arrays en 1 clase y son sobre diferentes clases...

Lo que quiero hacer es lo siguiente:
Todos los arrays estan cargados con datos y quiero que en el primer array (todos guardan objetos) me almacene distintos objetos del segundo array, es decir el objeto que hay en la posicion 0, 1, 2, 3 y 4 del array "b" almacenarlos dentro de la primer posicion del array "a", depues lo que hay dentro de la posicion 5,6,7,8 del array "b" almacenarlos en la segunda posicion del array "a" y asi sucesibamente y que me imprima despues toda la info que hay dentro de cada posicion del array "a". La idea seria que una vez que almacenas esos datos se eliminen del array b sin importar si queda vacio una vez que finalizo, es decir si primero los almacena y una vez q termino lo borra o a medida que va almacenando los borra del array original no hay ningun problema ya que esa es la idea.

Se puede hacer eso?? en caso de que no que solucion alternativa se puede realizar?

Muchas gracias...

pd: Les pego el metodo que tenia para realizar esa tarea pero que no me funciona ya que me pisa los objetos quedando almacenado unicamente el ultimo objeto guardado en esa posicion.

private void ordenarCosas(){
int i=0,j=0,x=0;
for (i=0; i < 15; i++){
while (j!=cantLibrosXCaja){
cajas.add(i, libros.get(j));
j++;
}
while (x!=cantJuegosXCaja){
cajas.add(i, juegos.get(x));
x++;
}
//System.out.println("se almaceno:");
}
}
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:pregunta sobre arrays

Publicado por Victor Oliva (66 intervenciones) el 14/08/2007 18:08:03
Hola Alan,

si se puede hacer lo que estas planteando. Y como solucion alternativa existen varias posibilidades. Por ejemplo usar un tercer ArrayList de intercambio, llamemoslo Array C.
Entonces tendras array "A", array "B" y agregamos el array "C"

Recorres el array "B" y vas metiendo la informacion 1,2,3,4 en el array "C".
Luego tomas el array "C" y lo dejas en la primera posicion del array "A".

Debes tener en cuenta que el objeto ArrayList es un lista que puede tener "CUALQUIER" tipo de objeto dentro de una de sus casillas.
Y obviamente puede tener un ArrayList dentro de una de sus casillas.

Ahora, existe otra opcion que es un poco mas elegante. Se llama HashMap.
En este objeto puedes manejar una llave y colocar varios objetos mas dentro de esa llave.
Ejemplo:

HashMap hm = new HashMap();

hm.put ("0", "VICTOR");
hm.put ("0", "OLIVA");
hm.put ("1", "ANA");
hm.put ("1", "ALZAMORA");
hm.put ("0", "FERNANDEZ");

Esto te dejara la informacion de cada LLAVE o KEY en un objeto parecido al arraylist, llamado Collection.

En el HashMap con la llave "0" dejo los objetos "VICTOR", "OLIVA", "FERNANDEZ". en una collection de objetos.

Si te gusta esta idea, puedes buscar informacion y si no te queda muy claro puedo hacer un ejemplo.

Si se te hace muy complejo utilizar el HashMap entonces te recomiendo que utilices la opcion de tener 3 array.

Espero que te ayude.

Victor.
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:pregunta sobre arrays

Publicado por Alan (28 intervenciones) el 14/08/2007 19:19:10
Antes que nada gracias por la rapidez de la respuesta, para ser sincero no me quedo muy claro como es la funcion del HashMap pero me parece mejor a mi problema aplicar la primer opcion que me diste. Ahora como podria aplicarlo en codigo eso porque habia intentado hacer algo asi y y me pasaba el mismo problema!.

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:pregunta sobre arrays

Publicado por Victor Oliva (66 intervenciones) el 15/08/2007 00:06:21
Hola Alan:

Mira el codigo con la primera opcion que te di, es algo así...

ArrayList arr1 = new ArrayList();
ArrayList arr2 = new ArrayList(); //ESTE ARRAY ES EL QUE DEBE TENER DATOS

int sep = 4;

for (int i=0; i<arr2.size(); i+=sep){

ArrayList arr3 = new ArrayList();
for (int j=i; j<i+sep && j<arr2.size() ; j++){
arr3.add(arr2.get(j));
}
arr1.add(arr3);
}

Esto funciona, por que lo revice y lo probe en mi PC.

Con el HashMap, no te hago el ejemplo, por que no lo entendiste muy bien y el desarrollo podria serte un poquitin complejo si es que no dominas el HashMap.
Pero a las finales me fue mucho mas sencillo hacer esto mismo con el HashMap que con los Array.

Espero haya entendido tu problema y este sea la solución a eso...

Victor Oliva
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