tinella Geschrieben 9. Februar 2006 Teilen Geschrieben 9. Februar 2006 Hi Leute Kennt jemand ein Beispiel in welchem ein Tree anhand einer im Vorraus abgefüllten HashMap aufgebaut wird? :confused: Das Ding ist folgendes - möchte schlussendlich einen JarViewer haben. * habe directories nach Jarfiles abgesucht * die Pfade dann nach Trennzeichen / abgefüllt * die gesplitteten Objekte in eine HashMap gefüllt * wenn bereits ein Element existiert hat (zB C), habe ich das Teil nicht mehr erstellt Key, Value ----------- null, root root, C: C:, OrdnerA OrdnerA, OrdnerB OrdnerB, test.jar Der Key ist immer der Parent vom Value. Ich bräuchte nur einen Anhaltspunkt, wie ich das ungefähr machen müsste. Muss ich dazu die HashMap auslesen und dazu dem Tree das Objekt übergeben? :confused: Danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_Newlukai Geschrieben 9. Februar 2006 Teilen Geschrieben 9. Februar 2006 Hi, Was heißt denn "die Pfade dann nach Trennzeichen / abgefüllt"? Da kann ich mir nichts drunter vorstellen. Wieso erstellst Du überhaupt eine HashMap und nicht gleich einen Baum? Naja. Aber an sich, müßtest Du Dir erst das Root-Element besorgen. Davon erfragst Du dann die Values. Somit hast Du schon mal die Wurzel und ihre Kinder. Und das kannst Du dann wiederum (also rekursiv) für die Kinder der Wurzel machen. Du suchst deren Values in der Hashmap und fügst sie als Kinder der Wurzel-Kinder in den Baum ein. Und dann weiter ... Muss ich dazu die HashMap auslesen und dazu dem Tree das Objekt übergeben? Wäre wohl ein bißchen zu einfach. Woher soll der Baum wissen, wo Du das Objekt einfügen willst? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Whatever Geschrieben 9. Februar 2006 Teilen Geschrieben 9. Februar 2006 Angenommen es gibt diese beiden Pfade: c:\OrdnerA\UnterordnerA\datei c:\OrdnerB\UnterordnerA\datei2 Dann hast du ein Problem, weil du den zweiten UnterordnerA nicht speichern kannst. Ich weiß ja nicht wie es bei dir aussieht, aber ich habe auf meinem System durchaus Ordner, die gleich heißen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 9. Februar 2006 Teilen Geschrieben 9. Februar 2006 Ein Tree macht nur dann Sinn, wenn du mehr als ein Child pro Parent haben kannst (ansonsten ist das ganze eine einfache Liste). Über deine Struktur innerhalb der HashMap kannst aber z.B. mehrere Einträge in einem Verzeichnis gar nicht abbilden, da sonst der zweite Eintrag den ersten überschreibt (pro Key kann es nur ein Child geben, also pro Verzeichnis auch nur einen Eintrag für dieses Verzeichnis). Du solltest daher generell nochmal die Struktur überdenken und/oder dein Problem besser formulieren, damit wir wissen, was du eigentlich genau möchtest. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_Newlukai Geschrieben 9. Februar 2006 Teilen Geschrieben 9. Februar 2006 @perdi, @Whatever: Ist es bei der HashMap nicht so, daß sie Values mit gleichem Key in eine Liste im selben Bucket sichert? @perdi: Soweit ich weiß, ist ein Dateisystem immer eine Baumstruktur, daher bietet sich ein Tree doch geradezu an. Allein unter C:\ hast Du nach einer Windoof-Installation mehr als einen Ordner Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Whatever Geschrieben 9. Februar 2006 Teilen Geschrieben 9. Februar 2006 Object put( Object key, Object value ) Speichert den Schlüssel und den Wert in der Hash-Tabelle. Falls sich zu diesem Schlüssel schon ein Eintrag in der Hash-Tabelle befand, so wird der alte Wert überschrieben und der vorherige Wert zum Schlüssel zurückgegeben. Ist der Schlüssel neu, liefert put() den Rückgabewert null. Sobald also 2 Ordner gleich heißen, hat man ein Problem. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_Newlukai Geschrieben 9. Februar 2006 Teilen Geschrieben 9. Februar 2006 OK. Dann hab' ich was verwechselt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.