In maniera estremamente abbozzata ho qualcosa del genere:
codice:
 
class B {
int ID;
Object oggettoAssociato;
}
class A {

ArrayList<B> listaB;

}

class C {
ArrayList<A> lista A;

}

class D {
HashMap<Integer, B> mappaB;
}
C'è un oggetto di classe C che contiene una lista di oggetti di classe A.
Ogni oggetto di classe A contiene una lista di oggetti di classe B (ognuno ha un proprio ID e degli attributi tra cui un oggetto di un'altra classe ancora).
Nella classe D prendo tutti gli oggetti B "sparsi" nelle varie classi A e li inserisco in una HashMap.
Spero di essermi spiegata meglio
Mi sono però accorta che se modifico l'oggetto B i-esimo nella hashMap, ad esempio settandogli un oggetto associato, allora anche l'oggetto B corrispondente nella classe A risulta coinvolto nella modifica. Quindi non dovrei avere problemi. E' corretto?