Meu problema é basicamente o seguinte:
Tenho essas duas listas da mesma classe.
ArrayList<P> p2 = new ArrayList<P>(); ArrayList<P> p3 = new ArrayList<P>();
O que acontece é que quando faço esta operação:
for(int k=0; k<getF(); k++) { for(int i=0; i<NumFilhos; i++) { for(int j=0; j<NumFilhos; j++) { if(p2.get(j).getF().get(k).equals(listFs.get(k).get(i))) { p3.add(p2.get(j)); p2.get(j).getF().set(k, -1.); break; } } } }
os valores de p3 sofrem a operação feita em p2, mesmo com a operação sendo feita depois.
Ao meu entender, é porque as variaveis de p2 possuem o mesmo endereço de memória de p3, porém como eu consigo adicionar o valor de p2 a p3, e alterar somente p2? Tem como fazer o p3 e p2 possuirem endereços de memoria diferentes? Ou alguma forma de adicionar os valores de p2 a p3 e alterar p2 sem que p3 também sofra as alterações?