static L cleanUpAndGetWeakReferencesList(L> l) { if (l == null) null; synchronized(l) { new L out; for (int i = 0; i < l(l); i++) { A a = l.get(i).get(); if (a == null) l.remove(i--); else out.add(a); } ret out; } }