Tree indexieren, Element-Indexierung

Status
Nicht offen für weitere Antworten.

JavaAnfaengerFragen

Neues Mitglied
Hallo,
ich möchte die Elemente eines "Tree's" indexieren und steh gerade etwas auf dem Schlauch wie ich das am besten lösen kann.

Mein "Tree" liegt jetzt noch als Strings in einem Array da. (elementtiefe wird bis zu 10 sein.) :
Code:
Root
Root/node1
Root/node1/noteA
Root/node1/noteA
Root/node1/noteA/wertA
Root/node2
Root/node2/wertxy
.
.

Ich möchte nun eine Liste erhalten die folgend aufgebaut ist:

Code:
1        Root
1.1      Root/node1
1.1.1    Root/node1/noteA
1.1.2    Root/node1/noteA
1.1.3.1. Root/node1/noteA/wertA
1.2      Root/node2
1.2.1    Root/node2/wertxy

Kann mir jemand helfen???

Danke der anfänger
 
S

SlaterB

Gast
gibt es denn schon irgendeinen richtigen Tree, den du aus dem Array aufbaust, oder hast du nur das Array?

dann bau doch erstmal einen Tree daraus auf,
ein Tree besteht aus Knoten/ Nodes (neue Klasse) mit einem Namen, evtl. einem Parent und einer Menge von Kindern,
dazu auch noch ein Index, aber der kann auch erst später dazukommen,

nun durchläufst du das Array, Root ist der erste Knoten,

dann kommt Root/node1, von diesem String filterst du den Namen des Parent heraus, alles bis zum letzen /, mit String-Methoden wie indexOf + substring,
dann weißt du das der Parent 'Root' ist und musst den Knoten dafür bestimmen,
entweder durchläufst du eine Liste aller bisherigen Knoten, oder eine Map Name -> Knoten,
oder du hast dir den letzten der höheren Ebene gemerkt, bei richtiger Reihenfolge im Array ist das möglich,
jedenfalls erstellst du dir einen neuen Knoten und speicherst ihn in der Liste des Parent,

das ist auch schon das fertige Verfahren für alle anderen Array-Elemente,

die Indexierung kannst du nun währenddessen machen oder später in einem Durchlauf des fertigen Baums,
Root ist Index "1", alle anderen haben als Index den Index vom Parent + "." + Position in Child-Liste

wenn du das alles durchblickst, dann könntest du strenggenommen auch eine Indexierung ohne Tree machen,
musst dir nur immer gut die Anzahl Childs usw merken, brauchst eine int-Variable pro möglicher Ebene oder besser ein Array,
Rekursion würde das ganze eleganter machen
 
G

Guest

Gast
Danke, SlaterB für die sehr ausführliche Erklärung.
Ich hab es nun über ein Array (TreeMap<Integer, ArrayList<Integer>> tagArrayIndex) ohne den Tree realisiert.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Tree erstellen Allgemeine Java-Themen 8
Zrebna DeleteNode-Funktionalität in einem AVL-Tree Allgemeine Java-Themen 5
Kirby.exe Search Tree Allgemeine Java-Themen 11
M kruskals-algorithm-minimum-spanning-tree Allgemeine Java-Themen 5
I Javafx Open/Read und Tree Funktion Allgemeine Java-Themen 14
F Framework/Plugin für Tree-Darstellung in Graph Allgemeine Java-Themen 0
M tree-based diff Algorithmus (Code-Vergleiche) Allgemeine Java-Themen 3
B k-d Tree in Java bauen Allgemeine Java-Themen 2
P Tree Object structure Allgemeine Java-Themen 19
P Collection Tree Allgemeine Java-Themen 19
E Reguläre Txt in Tree parsen Allgemeine Java-Themen 2
W Queue.remove() -> no such element exception Allgemeine Java-Themen 17
8u3631984 Prüfen ob min. ein Element eines Sets in einem anderen Set enh Allgemeine Java-Themen 4
B flying-saucer-pdf Element vertikal strecken Allgemeine Java-Themen 0
P Selenium . Probleme ein Iron Icon Element anzusprechen Allgemeine Java-Themen 2
A Java ListNode Element einfügen ohne Bibliothek Allgemeine Java-Themen 6
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
S Link element an vorletzte stelle einfügen Allgemeine Java-Themen 2
I DOM-Parser - Element im Element an bestimmten Stellen auslesen Allgemeine Java-Themen 1
B DomParser - Element filtern Allgemeine Java-Themen 4
S Iterable<?> anzahl der Element Allgemeine Java-Themen 14
P Element einer Liste wurde hinzugefügt, aber es gibt keinen Zugriff Allgemeine Java-Themen 2
C Swing File[] als klickbare links in irgendeinem Swing Element Allgemeine Java-Themen 3
perlenfischer1984 Reflection : Element in generische Liste hinzufügen Allgemeine Java-Themen 4
KeVoZ_ JSoup - Website Inhalt/Element mit String vergleichen Allgemeine Java-Themen 2
B Prüfen, ob ein Element in der Liste nicht existiert Allgemeine Java-Themen 3
Messoras List zeigt nur das letzte Element an Allgemeine Java-Themen 14
O aus Liste ein beliebiges Element auswählen Allgemeine Java-Themen 7
G mittleres Element aus TreeMap Allgemeine Java-Themen 5
J XML Element Zugriff Allgemeine Java-Themen 4
S translate verschiebt verkehrtes Element Allgemeine Java-Themen 2
M Webservices: WSDL Files ohne "Service" Element? Allgemeine Java-Themen 4
P Element toString Allgemeine Java-Themen 9
J Element aus HashSet löschen Allgemeine Java-Themen 2
S Element aus ArrayListe löschen --> Thread hängt sich auf Allgemeine Java-Themen 2
E Blob Element kopieren Allgemeine Java-Themen 12
G Element aus Liste entfernen Allgemeine Java-Themen 6
B von Array-Element auf Position in Array Allgemeine Java-Themen 7
M Javadoc | Javadoc Eintrag des verlinkten Element einbetten? Allgemeine Java-Themen 4
A Element für Preferences Page Allgemeine Java-Themen 3
T Element aus Vector entfernen Allgemeine Java-Themen 4
A Queue, beim dem das letzte Element herausfällt Allgemeine Java-Themen 4
I ArrayList mit einem aktiven Element Allgemeine Java-Themen 7
M Wie heißt denn dieses grafische Element ? Allgemeine Java-Themen 2
K Kein schließendes Tag bei leerem Element mit JDOM Allgemeine Java-Themen 8
E JTree - einzelnes Element (Knoten) editieren Allgemeine Java-Themen 2
B JList Element Auswahl Allgemeine Java-Themen 2
N Array Element vom Typ eines Objekts zeigt auf ein anderes A. Allgemeine Java-Themen 4
Ark Kubische Suche um ein Element in array[][][] Allgemeine Java-Themen 18
D Fehler beim löschen eines Arraylist-element Allgemeine Java-Themen 5
M Erstes Element einer Enumeration ermitteln Allgemeine Java-Themen 6
N Element aus LinkedList löschen Allgemeine Java-Themen 2
C Collection Element ersetzen Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben