Originariamente inviato da timeless
io ho una serie di oggetti ( Q ) che voglio poterli archiviare e utilizzare potendoli caricare con due chiavi di ricerca Tipo ( X , Y );

il problema è che inserendo e eliminando questi oggetti mi vado a incasinare la struttura non trovando più le corrispondenze e siccome un Q avrà una X e una Y univoci che gli altri Q non possono avere ( es. Y = Ip e X = MacAddress e Q è un PC ) mi volevo fare una Hashtable con Doppia Chiave ma non ho trovato niente che mi suggerisca come risolvere questo problema.

Ps. ho pensato a una hashtabel con doppia chiave perchè mi serve fare una ricarca sia con X che con Y ..
Viste queste premesse, cioè il fatto che gli oggetti Q devono essere "indicizzati" singolarmente per X e Y, allora dovresti usare 2 "map" (che poi come implementazione delle map usi Hashtable piuttosto che HashMap poco cambia).

Ma ti conviene incapsulare il tutto in una classe apposita! Cioè dovresti creare una tua classe che contiene le due map (che tieni debitamente nascoste dall'esterno) e che offre dei tuoi metodi di inserimento, ricerca, cancellazione ecc...