ich stolpere in Java immer wieder gegen das gleiche Problem, und zwar Arrays iniziieren. In verschiedenen Programmen muss ich manchmal Dateien mit Regexen bearbeiten und dann Ergebnisse in einen Array speichern. Nun weiß ich nie, wieviele Matches ich bekomme. Aus diesem Grund kann ich nie wissen, wie groß ich den Array deklarieren soll. Es ist ärgerlich, weil sie dann entweder zu groß mit vielen leeren "Zellen" oder zu klein sind. Könnt ihr mir da irgendwas empfehlen, ausser die Arrays danach wieder neu zu speichern.
??? :shock: ich weiß nur noch von meinem Info Kurs, dass es irgendwie ziemlich kompliziert war und ich glaube, es passt bei einer großen Datenzahl irgeindwie nicht wirklich. (Ehrlich gesagt habe ich jetzt Angst damit anzufangen)
ich weiß nicht, ich hab in erinnerung, dass da irgedwie jedes Element auf das nachfolgende zeigen muss und habe das damals schon irgendwie umständlich empfunden... Ausserdem soll das auch ein zweidimensionaler Array sein
Guck dir mal das Beispiel an, dieses benutzt eine Liste um unbekannt viele Elemente zu erfassen und wandelt sie dann in ein normales Array um.
Code:
public String[][] getUnknown() {
// erste Dimension durch itterieren
List<String[]> StringListeEins = new ArrayList<String[]>();
for(int eins=0; eins<10; eins++) {
// zweite Dimension erstellen
List<String> StringListeZwei = new ArrayList<String>();
StringListeZwei.add("Ich bin Item [?][0]");
StringListeZwei.add("Ich bin Item [?][1]");
StringListeZwei.add("Ich bin Item [?][2]");
// String[] aus Liste erstellen und Liste Eins hinzufügen
StringListeEins.add(StringListeZwei.toArray(new String[0]));
}
return StringListeEins.toArray(new String[0][]);
}
in deinem Info Kurs ging es sicher nur um die grundlagen der programmierung. verkette listen usw.
Das gute an java ist aber, dass du nicht alles selbst erfinden bzw schreiben musst.
und du sollst vor solchen dingen keine angst haben, du musst dich auf neue dinge einlassen und nicht lange herum überlegen und lesen, sondern einfach mal ausprobieren.
Code:
ArrayList<String> liste = new ArrayList<String>();
liste.add( "foo" );
liste.add( "bar" );
liste.get(0); // => "foo"
liste.get(1); // => "bar"
ist nicht wirlich schwierig, bzw ich kenn nichts einfacheres