String[] array; undefinierter groesse initialisieren?

gamp

Mitglied
Hallo alles zusammen!

Ich benötige mal wieder eure Hilfe!

Zuerst mein test-Code:
Code:
		public static void main(String... args) {
			
			String tmpstr = "";
			//tmpstr = "irgendwas";
			
			String[] artist = new String[]{ "", "", "", "", "", "", "", "", "", "" }; // <--- geht          [TEST1]
			//String[] artist = new String[]{}; // <--- ArrayIndexOutOfBoundsException  [TEST2]
			//String[] artist = null; // <--- "artist[x] can only be null at this location"        [TEST3]
                       //String[] artist;  // <--- Eclipse sagt ich MUSS artist initialisieren                [TEST4]
			
			int x = 0;
			while(x < 10) {
				if(!tmpstr.equals("")) {
					artist[x] = tmpstr;
				} else {
					artist[x] = "n/a";
				}
				x++;
			}
			
			System.out.printf("artist[%d]: %s\r\n", 0, artist[0]); // kurzer ausgabe test
			System.out.printf("artist[%d]: %s\r\n", 5, artist[5]); // obs funktioniert hat
		}

Zuerst habe ich TEST4 benutzt, jedoch sagt mir Eclipse dann das ich die variable "artist" zuerst initialisieren muss.
Bei TEST3 und TEST2 seht ihr ja an den Comments was das Problem ist.
TEST1 funktioniert natürlich, jedoch hab ich dann blos ein Array mit 10 Elementen.
Mein Problem ist, ich habe eine unbekannte Anzahl an Elementen die ich in das String[] Array ablegen will.

Wie initialisiere ich nun das Array ohne feld-Größe anzugeben? Ist das überhaupt möglich?


Mfg
 
Nimm statt der while lieber eine for und setze das "x++" in die Durchlaufanweißung. Beim ersten auskommentiert stößt es bei einer Schleife die bis 10 hochzählt schnell an eine Grenze. Man sollte btw. konstanten (außer 0, -1, 1, null, ect) nicht verwenden. 2 und 3 verweißen auf überhaupt keine Instanz.
Nimm am einfachsten ne ArrayList.
 
Japp, mit eine Liste geht das viel einfacher:

Java:
List<String> myStringList = new ArrayList<String>();

myStringList.add("Foo");
myStringList.add("bar");
myStringList.add("blub");
....
 
Zurück