Ich probiere derzeit einen Katamari-Clone zu schreiben und habe gerade das Problem, dass ich alle Objekte im Vector<Drawable>, das alle zu zeichnenden Objekte enthält, in der richtigen Reihenfolge zeichnen muss, so wie es die getZ()-Methode von meinem Drawable vorsieht.
Dazu habe ich erstmal einen Hashtable mit den Z-Koordinaten als Key und den Indizes der Drawable-Objekte als Value befüllt. Danach habe ich ein Array mit den Z-Koordinaten erstellt und diese dann sortiert. Jetzt kann wenn ich das Array durchlaufe und die daraus resultierenden Z-Werte beim Vector als Key benutzen um die Indizes in der gewünschten Reihenfolge erhalten.
So weit, so gut, die Probleme treten erst dann auf wenn es mehrere Objekte mit den selben Z-Koordinaten im dem Hashtable gibt. Dann erhalte ich öfters dasselbe Objekt wenn ich dieselbe Z-Koordinate als Key benutze. Deswegen will ich versuchen das Key-Value-Paar aus dem Hashtable zu entfernen nachdem ich es ausgelesen habe. Das wollte ich mit der Hashtable.remove(key)-Methode machen, habe aber dann festgestellt, dass alle Paare mit dem angegebenen key entfernt werden. Gibt es also eine Methode, ein Paar zu entfernen, wenn man den Value desselben kennt? Denn Values können in meinem Hashtable keine doppelt vorkommen!
Dazu habe ich erstmal einen Hashtable mit den Z-Koordinaten als Key und den Indizes der Drawable-Objekte als Value befüllt. Danach habe ich ein Array mit den Z-Koordinaten erstellt und diese dann sortiert. Jetzt kann wenn ich das Array durchlaufe und die daraus resultierenden Z-Werte beim Vector als Key benutzen um die Indizes in der gewünschten Reihenfolge erhalten.
So weit, so gut, die Probleme treten erst dann auf wenn es mehrere Objekte mit den selben Z-Koordinaten im dem Hashtable gibt. Dann erhalte ich öfters dasselbe Objekt wenn ich dieselbe Z-Koordinate als Key benutze. Deswegen will ich versuchen das Key-Value-Paar aus dem Hashtable zu entfernen nachdem ich es ausgelesen habe. Das wollte ich mit der Hashtable.remove(key)-Methode machen, habe aber dann festgestellt, dass alle Paare mit dem angegebenen key entfernt werden. Gibt es also eine Methode, ein Paar zu entfernen, wenn man den Value desselben kennt? Denn Values können in meinem Hashtable keine doppelt vorkommen!