Zum Inhalt springen

TreeAufbau nach HashMap


tinella

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@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 ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...