Dobry den. Vytvořil jsem si 3D ArrayList ale trochu jiným způsobem a to tak, ze jsem do ArrayListu nahral dalsi ArrayList a to jsem pak vlozil do dalsiho ArrayListu. Takhle jdou prakticky tvořit multi-pole (myslím). Jenže když chci přistupovat k hodnotám v poli tak ho musím rozložit a teprva vypsat/nahradit určitými hodnotami, což je zdlouhavé.
nešlo by něco takového ?
hodnota =3DField.get(i).get(x).get(y); //toto nefunguje samozřejmě , i když nechapu proč.
public ArrayList get3DArrayList(int x, int y, int i)
{
ArrayList dimension2 = new ArrayList();
ArrayList dimension3 = new ArrayList();
ArrayList newField;
int hodnota = 0;
/*
* Vytvoří 3D pole které se dá zvětšovat směru od 0 do nekonečna !! a rovnou naplní hodnotou
*/
for (int m = 0; m < i; m++)
{
for (int k = 0; k < y; k++)
{
newField = new ArrayList();
for (int j = 0; j < x; j++)
{
hodnota++;
newField.add(hodnota);
}
dimension2.add(newField);
}
dimension3.add(dimension2);
dimension2 = new ArrayList();
}
return dimension3;
}
public void Vypis3DArray(ArrayList list)
{
ArrayList SoutField, newField;
for (int i = 0; i < list.size(); i++)
{
newField = (ArrayList) list.get(i);
System.out.println("[" + i + "]");
for (int b = 0; b < newField.size(); b++)
{
SoutField = (ArrayList) newField.get(b);
for (int j = 0; j < SoutField.size(); j++)
{
System.out.print("[" + SoutField.get(j) + "] ");
}
System.out.println();
}
System.out.println();
}
}