Mitwachsender Index

jmh

Grünschnabel
Hallo,
ich versuche gerade mehrere Arraylisten per while Schleife zu erzeugen. Diese sollten sich dann wegen der Übersichtlichkeit/Flexibilität selbst erzeugen. Um die Übersicht nicht zu verlieren habe ich versucht diese mit einem Namen+ mitwachsenden Index zu erzeugen. Leider ist mir dies noch nicht gelungen. Bei Fortran muss man dafür den Index mit %Index% umgeben. Ist etwas Vergleichbares auch bei Java möglich wenn ja wie?
So in der Art wie:
Code:
int index =0;
		while (anzahlEingeleseneListen>=index) {
			ArrayList<String> myArrayTest+index = new ArrayList<String>();
			index++;
		}
Nur das ich hier eine Fehlermeldung bekomme da der Name myArrayTest+index nicht zulässig ist.
die while Anweisung soll mir myArrayTest1, myArrayTest2... erzeugen


Danke für eure Mühe
 
Ich empfehle dir einen Array zu nehmen
Java:
ArrayList<String>[] list = new ArrayList<String>[index];
for ( int i = 0; i < index; i++ ) {
    list[i] = new ArrayList<String>();
}

ArrayList<String> listNummer3 = list[3];

Beachte, dass ArrayList<String>[10] 10 Plätze schaft (0-9).

Der Code ist ungetestet...
 
  • Gefällt mir
Reaktionen: jmh
Danke für deine Antwort.

Leider bekomme ich folgende Fehlermeldung:


Code:
int index =0;	
	ArrayList<String>[] list = new ArrayList<String>[index];   // Felhermeldung
	for ( int i = 0; i < index; i++ ) {
	    list[i] = new ArrayList<String>();
	}
		ArrayList<String> listNummer3 = list[3];
	}
}
Multiple markers at this line
- Cannot create a generic array of
ArrayList<String>
- Syntax error on token ";", { expected after
this token

Eine andere Frage wieso würdest du ein Array benutzen? Ich habe extra eine ArrayList benutzt, da ich vorher die länge der eingelesen Listen noch nicht kenne.

Ich bin mir nicht sicher ob du mein Problem genau verstanden hast.

Ich versuche angepasst an den int index= 3
zb.
drei ArrayListen zu erzeugen.
die keine vorgegebe länge haben sondern nur ArrayList1 und ArrayList 2 ... heißen.

Danke
 
Hallo,

yaslaw hat dein Problem schon richtig verstanden. Bei Java kannst du nicht dynamisch Variablen generieren und diese später in deinem Programmcode ansprechen.

yaslaw lässt ein Array von ArrayListen generieren. Also, um mal bei deinem Beispiel zu bleiben, wenn du 3 Listen brauchst, hast du nicht arrayList1 - arrayList3, sondern ein Array mit der Größe 3. In diesem Array liegt an jeder Position eine ArrayList.

Wenn du jetzt 5 einlesen würdest und du 5 Listen bräuchtest, wäre das Array 5 Felder groß.

So sollte die Zeile oben heißen.
Code:
ArrayList<String>[] list = new ArrayList[index];




Du kannst das ganze auch mit einer Map lösen.
Code:
int index = 3;
		Map<String, List<String>> lists = new HashMap<String, List<String>>();
		
		for(int i = 0, size = index; i < size; i++){
			
			lists.put("arrayList"+i, new ArrayList<String>());
			
		}
		
		lists.get("arrayList2").add("HAllo");


Gruß

Sascha
 
Zurück