Copiando coleções em Java
August 6, 2010 Leave a comment
Em java, para fazer com que uma coleção tenha o mesmo conteúdo que outra, podemos fazer o seguinte:
List<String> a = new LinkedList<String>();
a.add("1");
a.add("2");
List<String> b = new LinkedList<String>(a); //aqui b copiará a
No entanto, os elementos de b, que copiou tudo de a, continuarão referenciando os mesmos elementos de a na memória. Em alguns casos isso pode não ser o comportamento desejado.
Para forçar o Java a duplicar as instâncias da coleção copiada na coleção de destino, adicione após o construtor de b o seguinte comando:
Collections.copy(b,a);
Observe que se vc chamar apenas o comando copy sem ter feito a construção corretamente, provavelmente encontrará uma exceção informando que B não suporta A, ou que B não é grande o suficiente para A.





Recent comments