Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
mal angenommen ich hab einen Vector der String Felder enthält
Code:
private Vector<String[]> anweisung;
was kann ich nun tun um jedem String Feld exliziet einen Vorgänger und 0-n Nachfolger zuweisen zu können? Gibt es hier ne spezielle Datenstruktur bzw. ne bestimmt Klasse? Wie kann ich anschließend auf die Vorgänger bzw. Nachfolger zugreifen?
sowohl einfach als auch mehrfach verkettete Listen dürfen doch immer nur einen Nachfolger bzw. Vorgänger haben. Mit welcher Klasse könnte ich denn realisieren das ein Element der Liste genau einen Vorgänger und 0-n Nachfolger haben darf? Muss ich diese Klasse selbst implementieren oder gibt es sowas schon?
das klingt doch eher nach einem Baum! Bin aber noch zu frisch in Java um Dir jetzt sagen zu können, wo es Implementierungen dazu gibt ( geben wird es die sicher).
Willkommen in der Wunderwelt der Graphen..
Hast du immer nur einen Vorgänger und beliebig viele Nachfiolger, hast du einen Baum, wie wagus bereits sagte, da drängt sich dann die Verwendung von TreeModel bzw. von Klassen auf, die bereits TreeModel implementieren.
jetzt mal ne ganz doofe Frage. Gibt es nicht die Möglichkeit das Interface Tree Model in die Klasse String zu implementieren so das ich mit entsprechenden set bzw. get Methoden einfach die Vorgänger bzw. Nachfolger meiner Strins setzen kann. Bei mir handelt es sich zwar um keine String sondern um String Felder, mich würde aber trotzdem interressieren ob dies möglich wäre?
nö, geht glaub ich nicht. string ist immutable, also kannste nicht von der klasse erben und dann das interface implementieren. du musst ne neue klasse machen die ein string als attribut hat und der kannste dann das interface implementieren
klugscheiss on:
Das String "immutable" ist hat garnichts damit zu tun, dass man keine Unterklassen von String bilden kann, das verhindert nämlich nur "final".
final != immutable
klugscheiss off.
Ich fass nochmal kurz zusammen. Es geht darum die Vorgänger bzw. Nachfolger von String Feldern zu setzen bzw. auszulesen. Nun kann ich leider keine Klasse erzeugen die von der Klasse String bzw. StringBuffer erbt und die das Interface TreeModel implementiert da sowohl StringBuffer als auch String final sind. Wenn ich das richtig verstanden habe gibt es nun also keine andere Möglichkeit als eine neue Klasse zu erzeugen die als Attribut ein Stringfeld hat.
Ist der Ansatz unten richtig so bzw. gibt es keine einfachere Lösung?
Code:
class Test implements Tree Model
{
String[] stringfeld;
Test(attribute...)
{
stringfeld = new String[attribute.length];
stringfeld = attribute;
}
// TreeModelMethoden implementieren
}