Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Duvida sobre a utilização do Arrays.asList(conta1, conta2));

List<Conta> contas = new ArrayList<>(); 
contas = Arrays.asList(conta1, conta2));

Tenho algumas duvidas referente esse método asList da classe Arrays. Quando ele é usado ele uma retorna uma ref de List com RandomAcess.E é por isso que não consigo adicionar mais itens na lista ?

4 respostas

Arrays.asList(conta1, conta2)); retorna uma lista imutável(https://dzone.com/articles/immutability-in-java) com os elementos conta1 e conta2. Para ter o efeito desejado .

Você pode adicionar as contas manualmente List lista1 = new ArrayList<>(); lista1.add(conta1); lista1.add(conta2)

Ou utilizar o construtor que recebe uma Collection

List lista1 = new ArrayList<>(Arrays.asList(conta1,conta2));

Então é melhor usar o metodo add.

Porque o metodo Arrays.asList que recebe uma Collection,

List lista1 = new ArrayList<>(Arrays.asList(conta1,conta2));

retorna uma array imutável e não vou conseguir mais adicionar mas nenhum item na lista(lista1). Certo ?

solução!

Não , porquê esse construtor que recebe uma collection cria a lista com os mesmos objetos da coleção passada em parâmetro

List lista = Arrays.asList(conta1,conta2); List lista1 = new ArrayList<>(lista);

lista é uma referência para um ArrayList imutável e lista1 é uma referência para um ArrayList "normal" (mutável) e ambos tem os mesmo elementos (conta1 e conta2).

lista vc não pode ser modificada lista1 pode.

Muito Obrigado. Agora sim entendi, já fiz até um testes aqui pra ver melhor. muito melhor agora vlw.

Só acho que tinha que retirar ou sair esse método do exemplo na aula. Porque por exemplo eu que estou começando agora, esse método atrapalhou muito até eu entender que era ele que estava causando todo meu problema no código. Cheguei a pensar que tinha feito alguma coisa errada no Hibernate aqui. Mas ele não tinha nada haver.