ich stehe vor einer kleinen frage...
habe zwar schon im internet gesucht aber irgendwie nichts finden können liegt wohl auch daran das es schwer ist ein gutes "schalgwort" dazu zu finden...
deswegen wohl auch der komische titel...
also...
ich möchte in meinem programmablauf in einer ArrayList weiter ArrayListen einfügen,
also verschachteln...
jedoch weiß ich vor programmablauf nicht wieviele ArrayListen in diese ArrayList rein sollen...
deswegen wollte ich diese dann im programmlauf generieren und einfügen,
doch ich bin mir überhaupt garnicht sicher ob das möglich ist...
also in einer schleife irgendwie die hochzählt sagen wir bis 3...
dann soll immer... List liste<index der schleife> = new ....
und dann eben in die normal hinzufüngen...
ist sowas überhaupt möglich?
und wenn ja wie schaffe ich es das ich in varbiablenamen variablen nutze? ^^
Google mal. Module ergibt immer den Rest einer Division zB 7%3 wäre dann 1, da 7/3 = 2 Rest 1. (% heisst modulo).
Nimm dir nen Counter als int, der je Element eins hoch zählt.
Die Nummer der Liste erhälst du aus der normalen Division. (zB 7/3 = 2)
Die Stelle in der Liste dann mit zähler%anzahlProFeld (zB 7%3 = 1)
==> Feld 2, Stelle 1
Hoffe das genügt, muss nomma weg =)
ach und zur Verschachtelung ganz schnell:
int[] => normales Array
int[][] => in jedem Feld was int[] hat, ist nochmal ein array versteckt.
Um die Größe der ArrayList brauchst du dich nicht zu kümmern, dazu ist sie ja da, um sich ggf. zu resizen. Wenn es möglich ist, sollte man aus Effizienzgründen aber auf LinkedList zurückgreifen, wenn man kein Random Access braucht.
also in einer schleife irgendwie die hochzählt sagen wir bis 3...
dann soll immer... List liste<index der schleife> = new ....
und dann eben in die normal hinzufüngen...
Nachdem ich mich ein bisschen mehr mit dem Problem befasst habe, entstand bei mir eher eine starke Abneigung gegenüber den ganzen altertümlichen Strukturen wie etwa Methoden, die ohne jeden guten Grund beliebige Objects als Argument annahmen, Arrays, nicht generische MVC-Patterns, Castings usw. Diese Sachen passen nicht mit den schönen guten Generics zusammen, sie sind daher böse^^ Das nennt sich "flottierender Hass" :bae: Aber mal im ernst: wenn 1.6 immer noch ein paar macken hat, ist es ja kein Grund, gleich auf 1.4 runterzugehen
vielen danke! =)
das hat mir geholfen...
irgendwie hab ich garnicht daran gedacht das es total egal ist wie die ArraysList heißt ^^
schließlich spreche ich sie ja mit den index nummern an
danke!!!
aber leider habe ich jetzt ein andere problem wo ich nicht genau was wie ich das lösen kann oder ob man das lösen kann -.-
0x7F800000:t
Wie gesagt, ich hatte das ArrayList im Text übersehen und nur noch Array im Kopf gehabt beim tippen.
Trotzdem muss er sich doch irgendwie errechnen, wann er die gewünschte Anzahl an Elementen in seinen Listen hat.
Beispiel:
Man habe schon 13 Elemente in seiner "Datenstruktur" erfasst. Das wären dann bei 3er-Listen:
4 volle ArrayLists/ je 3 Elemente
in der 5. Liste nur 1 Element
Jetzt will ich ein Element hinzufügen. Wenn ich nun von beginn an einen counter laufen lasse, welcher mir die Anzahl aller Elemente und der Unterlisten mitzählt weiss ich nun:
Wenn ich das Element Nr 14 einfügen möchte, muss ich ja erstmal errechnen in welche Unterliste ich will und welches Element es da drin sein soll. Also teile ich 14 / 3 = 4 (4.Unterliste) und 14 % 3 = 2 (dort 2.Element).
Also kann ich so hinzufügen:
(arrayList.get(4)).add(element)
(Wäre das Ergebnis des Modulo = 0 müsste man natürlich bevor man einfügt zuerst die Hauptliste um ein Element vergrössern damit eine neue Unterliste dort Platz findet.)
Oder analog um Objekt Nummer 14 abzufragen:
element14 = (arrayList.get(4)).get(2)
Auf unentscheidbare Fragen und unberechenbare Funktionen stößt man im tristen programmieralltag recht selten. Es kann allerhöchstens sein, dass der Speicher für das eine oder andere Vorhaben nicht ausreicht. Wenn du das Problem allerdings nicht nennst, können wir es auch nicht lösen.
Es ist ja toll, dass du dich für aufwendige mehrdimensionale geometrische Array-Anordnungen begeistern kannst, nur wurde hier nirgends danach gefragt, und wozu das gut sein soll, ist mir ebenfalls unklar. Was soll also diese ganze Modulo-Rechnerei?
Beispiel:
Man habe schon 13 Elemente in seiner "Datenstruktur" erfasst. Das wären dann bei 3er-Listen:
4 volle ArrayLists/ je 3 Elemente
in der 5. Liste nur 1 Element
Es ist bisher auch nicht erwähnt, warum man dafür nicht einfach nur eine Liste nimmt, oder?
Denn Inhaltlich scheinen Sie sich ja nicht zu unterscheiden wenn man eh danach geht beim füllen welche liste wie groß ist ("voll" sind die übrigens nie; Wenn Speicher voll, dann is das egal welche Liste du nehmen willst)
Auf unentscheidbare Fragen und unberechenbare Funktionen stößt man im tristen programmieralltag recht selten. Es kann allerhöchstens sein, dass der Speicher für das eine oder andere Vorhaben nicht ausreicht. Wenn du das Problem allerdings nicht nennst, können wir es auch nicht lösen.