Hirachie abbilden

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich hab da mal eine große Bitte.
Ich sitz seid mehr als 5 Stunden an einem Problem und weis es einfach nicht zu lösen.
Folgenden Ausgangssituation:

Ich bekomme eine Liste von Objekten. Jedes dieser Objecte hat nun ein Attribut LaufendeNummer in Form einen String.

BeispielListe:

Object1 -> LaufendeNummer: 1
Object2 -> LaufendeNummer: 1.1
Object3 -> LaufendeNummer: 1.2
Object4 -> LaufendeNummer: 2
Object5 -> LaufendeNummer: 2.1
Object6 -> LaufendeNummer: 2.2
Object7 -> LaufendeNummer: 3
Object8 -> LaufendeNummer: 3.1
Object9 -> LaufendeNummer: 3.1.1

Die Liste kann eine beliebige Anzahl an Objekten haben.
Die LaufendenNummer (String) ist ein Hinweis, wie die Objecte in beziehung stehen.

Nun soll ich diese Liste irgendwie durchlaufen und daraus eine Hirachie bastellen.
Vorzustellen ist sich das so:
Object1 hat ein Attribut List<Object> childs
darin Befinden sich Object2 und Object3
Object2 und Object3 besitzen ebenfallts wieder ein Attribut List<Object> childs
wo sich als beispiel weiter unterpunkte befinden können.

Also ist das eine Art Hierachie die ich so umsetzen soll.
Ich hoffe es ist verständlich was ich meine.

Wie setzte ich das nun am geschicktesten um ?! ..
Ich bekomm es einfach nciht hin anhand der Laufenden Nummer diese Verschachtelung aufzubauen !!

Hoff ihr könnt mir helfen ..

Danke
 
S

SlaterB

Gast
> Ich bekomm es einfach nciht hin anhand der Laufenden Nummer diese Verschachtelung aufzubauen !!

tolle Frage..

für TopLevel-Objekte wie 1 (oder später 2, 3) einzelne Objekte erstellen,

dann kommt als nächstes die zweite Ebene:
LaufendeNummer: 1.1 & Co
1.1 extrahieren,
die vordere 1 abteilen, in einer Map oder Array Objekt finden und dieses neue Child dort einfügen,

bei 1.1.1 ähnlich vogehen,
mindestens 1.1. abspalten und in einer Map direkt das passene Eltern-Objekt finden
oder komplett zerlegen und erste Top-Level-Objekt 1 finden, dann darin Komponente 1 usw.
 
G

Guest

Gast
Hallo,

oh sorry ja nicht ganz so die Super Frage ...

danke schon mal für deine Hilfe.

Nur ganz will der Groschen noch nicht fallen.

Bin nicht so der große Java - Experte bin gerade mal am Anfang.

Hättest du vll ein paar Code-Beispiele.

Vll wird mir daran etwas klarer was genau gemeint ist .. Danke
 
S

SlaterB

Gast
Code ist absolut irrelevant (außer du willst dir die Arbeit sparen oder so ;) )
und musst das nur gedanklich erfassen,

male dir z.B. auch alle Kategorien untereinander ein Blatt
und überlege dir, wie du vorgehst, um Verbindungslinien einzufügen

allein schon die Gedanken 'von oben nach unten durchgehen', 'für jede Kategorie gilt: jede Elternkategorie gibts schon, steht weiter oben auf dem Papier' sind wichtige Infos
 

jPat

Bekanntes Mitglied
Ein recursiver ansatz wäre folgendermaßen :

Code:
public void add(Object [] liste){
if (liste.length ==0 ) return;

Object element = liste.remove(0);
tiefensuche(element.laufendeNr)

add (liste)
}
private void Tiefensuche(String s ){
StringTokenizer st = new StringTokenizer (s,".");

eine schleife, die alle token durchgeht und dann in die Liste einfügt



}

Thema: Tiefensuche


Mach dir eine geeignette Datenstruktur
Jede unterstruktur von einer Struktur wird wieder eine Liste sein !!
Ganz oben steht eine Liste ...
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben