G
Guest
Gast
Hallo zusammen!
Ich bin gerade dabei eine Adjazenzliste in Java zu implementieren und habe mir das folgend gedacht. Meine Hauptklasse Graph enthält eine verkettete Liste, in der jedes Element ein Startknoten ist, der wiederum eine verkettete Liste bestehend aus Endknoten enthält. Diese Knoten enthalten jeweils einen eindeutigen Bezeichner "name" und die Endknoten noch die Gewichtung der Kante zu ihnen.
Mein Problem an der Sache ist jetzt erstmal, dass ich doppelte Einträge vermeiden muss, d.h. beim Einfügen eines beliebigen Knoten muss überprüft werden, ob der Key schon vorhanden ist. Dazu wollte ich die Methode contains(Object o) verwenden, doch leider vergleicht diese ja nicht den Key, sondern wohl die Adresse des Objekts und die ist natürlich jedesmal verschieden.
Also überschreibe ich diese Methode bzw. schreib mir eine neue. Aber wie greife ich auf die intern geführte Liste zu, damit ich jedes Element durchgehen kann?
Oder hat jemand eine andere Idee, wie ich doppelte Elemente vermeiden kann?
Gruß,
Calex
Ich bin gerade dabei eine Adjazenzliste in Java zu implementieren und habe mir das folgend gedacht. Meine Hauptklasse Graph enthält eine verkettete Liste, in der jedes Element ein Startknoten ist, der wiederum eine verkettete Liste bestehend aus Endknoten enthält. Diese Knoten enthalten jeweils einen eindeutigen Bezeichner "name" und die Endknoten noch die Gewichtung der Kante zu ihnen.
Mein Problem an der Sache ist jetzt erstmal, dass ich doppelte Einträge vermeiden muss, d.h. beim Einfügen eines beliebigen Knoten muss überprüft werden, ob der Key schon vorhanden ist. Dazu wollte ich die Methode contains(Object o) verwenden, doch leider vergleicht diese ja nicht den Key, sondern wohl die Adresse des Objekts und die ist natürlich jedesmal verschieden.
Also überschreibe ich diese Methode bzw. schreib mir eine neue. Aber wie greife ich auf die intern geführte Liste zu, damit ich jedes Element durchgehen kann?
Oder hat jemand eine andere Idee, wie ich doppelte Elemente vermeiden kann?
Gruß,
Calex