Hi, ich möchte einen Grafen in eine 2D-Arraylist einlesen (und ausgeben). Dafür steht in einer Textarea der Graf in einer notwendigen Schreibweise (s.u.). Das Einlesen (über StringTokenizer) funktioniert eigentlich (habs scheibchenweise getestet) nun bekomme ich die Ausgabe nicht hin, dabei ist es mri (vorerst) egal, ob das über zwei for oder zwei foreach-Schleifen passiert.
Erstmal mein Quelltext:
Die Ausgabe ist unvollständig, da ich hier nicht weiterkomme. Dabei stellt sich auch die Frage, ob die verwendete Datenstruktur zu vereinfachen geht.
Erstmal mein Quelltext:
Java:
/* Adjazenzliste:
- Liste mit allen Kanten von einem Knoten aus
- Rootelement entspricht Ausgangsknoten (damit beliebige Namen möglich)
- weitere Listenelemente stellen Menge der Kantenübergänge dar
- Bsp: o-> a -> b (Knoten a, Übergang zu b möglich)
o-> b -> a -> c -> d (Knoten b, Übergänge zu a, c, d möglich) */
ArrayList<ArrayList<Character>> kanten = new ArrayList<ArrayList<Character>>();
...
public void btnEinlesen_ActionPerformed(ActionEvent evt) {
// Text zeilenweise einlesen
String[] myText = taInput.getText().split("\n");
for (int i = 0; i < taInput.getLineCount(); i++) {
// Liste für Zeile erzeugen
ArrayList<Character> zeile = new ArrayList<Character>();
// liest Zeile ein und filtert alle Buchstaben aus
StringTokenizer myTokenizer = new StringTokenizer(myText[i],":|", false);
// solange noch ein Token vorhanden ist ...
while (myTokenizer.hasMoreTokens()) {
// ... wird es in Liste eingefügt
zeile.add(myTokenizer.nextToken().charAt(0));
}
// Zeile in Kantenliste hinzufügen
kanten.add(zeile);
}
// Test Ausgabe
for (int i= 0; i < kanten.size(); i++) {
for (int j=0; j< kanten.get(i).size(); j++) {
taOutput.append(String.valueOf(kanten.get(i). ...));
}
}
for (ArrayList z : kanten) {
for (Character c : z) {
...
}
}
}
Die Ausgabe ist unvollständig, da ich hier nicht weiterkomme. Dabei stellt sich auch die Frage, ob die verwendete Datenstruktur zu vereinfachen geht.