No, non lo sovrascrivi proprio perché fai List a = new ArrayList() in un ciclo, quindi quel riferimento all'oggetto array vale solo fino alla fine del ciclo. Ovviamente per non perdere la lista appena creata, tu fuori dal ciclo ti crei un'altro arraylist che chiameremo "b" e nel ciclo scrivi:
List<Target> a = new ArrayList();
//..fai le tue operazioni..
b.add(a);
A questo punto che succede: 'a' viene eliminato dato che il ciclo č finito ma noi ne abbiamo "tenuto traccia" salvandolo in b!
Quel problema di sovrascrittura di cui parlavi succederebbe se tu creassi la lista 'a' fuori dal ciclo. Mi pare si chiami aliasing questa "sovrascrittura".
Ps: se ho detto qualche sciocchezza corregetemi![]()

Rispondi quotando