Erstellen einer hashmap mit einem zwei-Schlüssel -

Ich bin auf der Suche nach einer geeigneten Datenstruktur für mein problem. Ich möchte in der Lage sein zu wählen, node-Objekten so effizient wie möglich mit zwei Tasten. Einfügen und löschen muss auch effizient sein. Im Grunde ist jedes node-Objekt hat ein paar von zwei Schlüsseln. Die Paare sind einzigartig, aber die einzelnen Tasten nicht. Ich muss in der Lage sein zu wählen, einer Gruppe von Knoten, die einen bestimmten Wert für eine der zwei Tasten.

Beispiel:

Node1 hat die Schlüssel a1 und b1

Node2 hat die Schlüssel a1 und b2

Knoten3 hat die Schlüssel a2 und b2

Möchte ich zum Beispiel in der Lage sein, wählen Sie den Knoten mit dem Schlüssel a1,b1, sondern auch alle Knoten b2 Schlüssel2.

Könnte ich natürlich machen zwei HashMaps (einer für jeden Schlüssel), aber das ist irgendwie eine unschöne Lösung, weil wenn ich hinzufügen oder entfernen von etwas, das ich tun müsste, wäre es in beiden Karten. Da gibt es eine Menge, hinzufügen und entfernen geht würde ich es vorziehen, dies zu tun in einem Rutsch. Hat jemand irgendwelche Ideen, wie dies zu tun?

Offensichtlich mit einem einzigen Schlüssel verschmilzt, dass die beiden Tasten zusammen, löst das problem nicht, weil ich muss auch in der Lage sein, um die Suche für einen einzelnen Schlüssel ohne Suche durch die gesamte Karte. Das wäre nicht sehr effizient. Das problem ist ein Effizienz-problem. Ich konnte einfach nur suchen, jeder Eintrag in der Karte nach einem bestimmten Schlüssel, aber stattdessen würde ich gerne auf einen hash, so dass ich kann wählen Sie mehrere Knoten-Objekte mit einer der beiden Tasten sofort.

Ich bin nicht auf der Suche nach so etwas wie die MultiKeyMap, da in diese Daten-Struktur der erste Schlüssel bleibt immer gleich, Sie kann nur hinzufügen, Tasten, statt Sie zu ersetzen der erste Schlüssel mit einem anderen Schlüssel. Ich will Umschalten können zwischen der ersten und der zweiten Taste.

Ich tun und nicht wollen, um zu speichern mehrere Objekte mit dem gleichen Schlüssel. Wenn man sich die Beispiel können Sie sehen, dass die beiden Tasten zusammen, sind immer einzigartig. Dies kann gesehen werden als ein einzelner Schlüssel daher würde ich nicht speichern mehrerer Objekte unter dem gleichen Schlüssel. Aber wenn man sich die einzelnen Tasten, diese sind nicht eindeutig, deshalb möchte ich mir zum speichern mehrerer Objekte verwiesen wird, die von den einzelnen Tasten.

  • sind Sie auf der Suche nach so etwas wie dieser ?
  • möchten Sie Sie speichern mehrere Objekt mit dem gleichen key?
InformationsquelleAutor Danielle | 2011-12-21
Schreibe einen Kommentar