Collection Tree

PollerJava

Top Contributor
Hallo,

gibt es irgendeine collection, die einen Tree darstellen kann, also:

Code:
root1
 |----leaf
root2
 |----leaf1
 |----leaf2
         |----leaf3
usw.
 
S

SlaterB

Gast
ja,
also es gibt Klassen dafür, Collections sind das dann nicht so wie List + Set,
nichtmal Maps sind Collections
 

PollerJava

Top Contributor
Ich hab mich jetzt dazu entschieden, den Baum in einer XML- Datei zu definieren, diesen dann einzulesen und dann in meinem Programm zu verarbeiten, Ich bin mir jetzt nicht ganz sicher, ob man so eine Struktur vernünftig mit dem SAX- oder DOM XML Parser einlesen kann??

[XML]
<tree>
<customer name="Customer1">
<node name="Path11" />
<node name="Path12">
<leaf name="item11" />
</node>
<node name="Path13">
<node name="Path131">
<leaf name="item12" />
<leaf name="item13" />
</node>
</node>
</customer>
<customer name="Customer2">
<node name="Path21">
<leaf name="item21" />
<leaf name="item22" />
<leaf name="item23" />
</node>
<node name="Path22">
<node name="Path221">
<node name="Path2211">
<leaf name="item221" />
<node name="Path2111">
<node name="Path21111">
<node name="Path211111">
<leaf name="item222" />
<leaf name="item223" />
</node>
</node>
</node>
</node>
</node>
</node>
</customer>
</tree>
[/XML]
 
S

SlaterB

Gast
'ich schon' passt nur zu deiner Vorgabe 'Ich bin mir jetzt nicht ganz sicher [ob das funktioniert]',
also es ist schon alles machbar,

aber genug der einsibligen Antworten, die deine Fragen so perferkt anbieten,

mit einem XML-Parser kann man natürlich ein XML-Dokument einlesen, welches natürlich Baum-Struktur hat, wie alle XML-Dokumente,
inwiefern soll das aufwändig sein?, ein XML-Parser macht doch gar nichts anderes,

wenn man es nicht kennt ist es gewiss schwer, stimmt, und ich werde das bestimmt nicht alles erklären, kenne das selber kaum,
verwende Tutorials wie kurz erster Google-Link
Introduction to XML Programming
gibt bestimmt bessere, vielleicht auch in deutsch
 
M

maki

Gast
Ungern...
Das Composite Pattern ist ein Entwurfsmuster dass sich für hierarschische Strukturen eignet in denen die einzelnen Knoten eine gemeinsame Schnittstellen bieten.

Warum ungern?
Details, Beispiele und Sourcecode gibt es zB. bei Google, WikiPedia, kurz: Das Internet ist voll davon ;)
Hatten sogar hier die eine oder andere Diskussion darüber..
 

PollerJava

Top Contributor
Ich hab die XML jetzt mit einem DOM- Parser eingelesen,
was ich jetzt noch brauche ist zu jedem Node den Pfad (vom Root bis zum Node),
ich habs so vesucht, aber ich bekommen eine Exception (OutOfMemoryError: Java heap space):

Java:
private String getPath(final Node node) {
        String name = node.getNodeName();
        final short type = node.getNodeType();
            final StringBuffer sb = new StringBuffer();
            while(node.getParentNode() != null && node.getParentNode().getNodeType() != Node.DOCUMENT_NODE) {
                sb.append(node.getParentNode().getNodeName());
                }
            return sb.toString();
            }

Kann sich das jemand erklären?
 
S

SlaterB

Gast
eine mögliche Ursache ist doch recht offensichtlich:
die Schleife läuft mit deinen fragwürdigen Bedingungen endlos, teste das einfach indem du eine count-Variable anlegst, mitzählst und ein
System.out.println(" bin nun beim counten-ten Parent von Node .. angelangt, dieser Parent heißt .., Typ ..");
einbaust
 
S

SlaterB

Gast
nicht so inflationär mit dem Begriff 'einfach' umgehen ;)
Speicher erhöhen ist was kompliziertes für Anfänger, Debug-Meldungen sollten eines der wenigen bekannten Standard-Mittel sein,

mal abgesehen davon dass es bei einer vermuteten Endlosschleife recht egal ist, wie groß der Speicher ist
 

Flown

Administrator
Mitarbeiter
Ich hatte aber schon mal so einen Fall, dass der Heap-Space zu klein wurde und da hilft nur mal 'einfach' den Speicher vergrößern. :D

EDIT: Jetzt seh ichs auch:

Java:
private String getPath(final Node node) {
        String name = node.getNodeName();
        final short type = node.getNodeType();
            final StringBuffer sb = new StringBuffer();
            while(node.getParentNode() != null && node.getParentNode().getNodeType() != Node.DOCUMENT_NODE) {
                sb.append(node.getParentNode().getNodeName());
                node = node.getParentNode(); //Gehört noch rein
                }
            return sb.toString();
            }
 
Zuletzt bearbeitet:

PollerJava

Top Contributor
Ich hatte aber schon mal so einen Fall, dass der Heap-Space zu klein wurde und da hilft nur mal 'einfach' den Speicher vergrößern. :D

EDIT: Jetzt seh ichs auch:

Java:
private String getPath(final Node node) {
        String name = node.getNodeName();
        final short type = node.getNodeType();
            final StringBuffer sb = new StringBuffer();
            while(node.getParentNode() != null && node.getParentNode().getNodeType() != Node.DOCUMENT_NODE) {
                sb.append(node.getParentNode().getNodeName());
                node = node.getParentNode(); //Gehört noch rein
                }
            return sb.toString();
            }

Nö, funktioniert nicht, beim debuggen fällt mir auf, dass bei node.getParentNode() der gleiche Node (also node) wieder zurückgegeben wird. Kann dass sein, würde zwar keinen Sinn machen aber laut debugger ist es so.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Rakshan Generic reading of XML document from the root tag into an Collection Allgemeine Java-Themen 0
JavaJüngling beliebige Collection die Comperable Elemente enthält als Parameter Allgemeine Java-Themen 37
W Collections Suche Collection, um Strings mit Indizees versehen Allgemeine Java-Themen 47
I Collection - contains-Methode überschreiben (anonyme innere Klasse) Allgemeine Java-Themen 4
Y String-Collection: längste gemeinsame Strings / Prefixe Allgemeine Java-Themen 3
S Probleme mit Collection Allgemeine Java-Themen 7
S Passende Java Collection Allgemeine Java-Themen 5
D Eigene/r Collection/Container Allgemeine Java-Themen 3
K Collections Collection<> mit List<String> abgleichen? Allgemeine Java-Themen 10
D Beste Collection für Integer Allgemeine Java-Themen 4
H JPA (EclipseLink) Neuer Eintrag in Collection speichern (unidirektional) Allgemeine Java-Themen 3
M Collections Typ Variable einer generischen Collection ? Allgemeine Java-Themen 4
T Garbage Collection Frage Allgemeine Java-Themen 15
H Datentypen Collection für SQL-Datentypen Allgemeine Java-Themen 2
M collection persistence system Allgemeine Java-Themen 4
K associate collection with two open sessions Allgemeine Java-Themen 12
B Garbage Collection Logfile: Binary File Allgemeine Java-Themen 2
T Liste mit GregorianCalendar-Objekten in List einlesen, mit Collection sortieren und ausgeben Allgemeine Java-Themen 3
S Stilfrage bezüglich Beans mit Collection-Properties Allgemeine Java-Themen 2
B iText Portable Collection Acrobat X Allgemeine Java-Themen 2
S Eine Collection von Objekten mit LDAP Syntax filtern Allgemeine Java-Themen 5
Rudolf Aus Collection<Integer> eine Zahl machen Allgemeine Java-Themen 2
R Dateigestützte Collection für große Datenmengen Allgemeine Java-Themen 5
hdi Garbage Collection Allgemeine Java-Themen 12
C Die schnellste Collection-Klasse ? Allgemeine Java-Themen 37
K Collection.contains()/retainAll() mit Referenzgleichheit statt equals()? Allgemeine Java-Themen 2
W return Collection mit schleife durchsuchen Allgemeine Java-Themen 10
E Collection Problem Allgemeine Java-Themen 2
B Geordnete, begrenzte Collection Allgemeine Java-Themen 3
D [SOLVED] Collection wird nicht richtig per Konstruktor übernommen Allgemeine Java-Themen 8
S Wahl der Collection, unspezifizierte Elementtypen Allgemeine Java-Themen 4
D Map mit Collection Eigenschaften Allgemeine Java-Themen 9
T Objekt der Garbage Collection zugaenglich machen? Allgemeine Java-Themen 7
S Innerer Type einer generischen Collection herausfinden? Allgemeine Java-Themen 13
B SBCC - Swing Better Components Collection - downloadlink ? Allgemeine Java-Themen 5
G Schnelligkeit einer Collection Allgemeine Java-Themen 12
V Collection in Collection Allgemeine Java-Themen 3
W [solved] Vector sortieren (Collection / Comparable?) Allgemeine Java-Themen 7
M Collection aufteilen Allgemeine Java-Themen 4
S Collection Type Allgemeine Java-Themen 8
S Probleme mit collection.containsAll Allgemeine Java-Themen 28
F Frage zu Memory Leak, Garbage Collection und Profiler-Tools Allgemeine Java-Themen 6
C Collection Multithreading? Allgemeine Java-Themen 33
vogella Überschreiben von equals und hashcode für Collection Allgemeine Java-Themen 7
T Hibernate Criteria Queries - Abfragen von Collection-Members Allgemeine Java-Themen 2
M Schnellste Collection/Liste Allgemeine Java-Themen 15
M Collection mit ArrayList Allgemeine Java-Themen 17
F mittels Collection<A> an A.class kommen? Allgemeine Java-Themen 7
L Welche Collection ist die richtige ? Listen mergen Allgemeine Java-Themen 3
B Collection Allgemeine Java-Themen 2
M Wie lange dauert ein garbage collection Allgemeine Java-Themen 7
R Garbage Collection bei gegenseitiger Objektreferenz Allgemeine Java-Themen 2
N Collection#retainAll(Collection<?> c) Allgemeine Java-Themen 3
M garbage collection Allgemeine Java-Themen 14
G Frage zur Garbage Collection Allgemeine Java-Themen 5
R Objekttyp ermitteln das aus generischer Collection kommt Allgemeine Java-Themen 3
J Von Collection zu vector Allgemeine Java-Themen 5
P Welche Collection verwenden? Allgemeine Java-Themen 4
S Sortierung einer Collection nach dem Attribut "name&quo Allgemeine Java-Themen 3
C Collection Element ersetzen Allgemeine Java-Themen 5
C public boolean containsAll(Collection c) Allgemeine Java-Themen 2
C Collection, LinkedList, Elemente Allgemeine Java-Themen 4
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
E Reguläre Txt in Tree parsen Allgemeine Java-Themen 2
J Tree indexieren, Element-Indexierung Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben