| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/07/2009 18:55:51
|
rmalati
Virtual Machine Man
![[Avatar]](/images/avatar/3bc8f7011e08bfe6830c967b497bdf6d.jpg)
Membro desde: 26/11/2007 09:10:30
Mensagens: 593
Localização: Jundiaí-SP
Offline
|
Boa noite...
Alguém pode me explicar pq não consigo adicionar um objeto no meu List que foi retornado pelo método asList?
Será que não consigo pq tô tentando adicionar .Net ao array?
Eu realmente não entendi.
Valeu
This message was edited 1 time. Last update was at 25/07/2009 22:37:22
|
Rodrigo Malatesta Barbosa
Graduando em Tecnologia Informática Unicamp
SCJP 1.6 - 93%
"A disciplina é o caminho mais curto para o sucesso"
"Se não puder destacar pelo talento, vença pelo esforço. (Provérbio indiano)" |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/07/2009 19:14:40
|
thiago.correa
GUJ Master
![[Avatar]](/images/avatar/c37f9e1283cbd4a6edfd778fc8b1c652.jpg)
Membro desde: 26/03/2006 18:54:30
Mensagens: 1861
Offline
|
Opa fiquei curioso e fiz os testes, mas ao ler a documentação a minha surpresa!
JAVADOC wrote:Returns a fixed-size list backed by the specified array
Ou seja você não pode modificar a estrutura da list e sim o seu conteúdo
Abraços
|
---
"Se não puder ajudar, atrapalhe, afinal de contas o importante é participar!"
Thiago
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/07/2009 19:24:09
|
71C4700
JavaEvangelist
![[Avatar]](/images/avatar/72824049a9d187c8848e6ba146b02ed3.jpg)
Membro desde: 25/03/2008 08:18:35
Mensagens: 364
Localização: Por ai...
Offline
|
Este metodo retorna um objeto do tipo da interface List, acredito que seja por isso, pois esta interface nã possui implementação para adicionar algum elemento.
Desta maneira funcionou, acredito que seja porque o ArrayList possui implementação para o metodo de adicionar. Corrigam-me se estiver errado...
Att.
|
[]This is Job!!!°°°°° |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/07/2009 19:43:10
|
rmalati
Virtual Machine Man
![[Avatar]](/images/avatar/3bc8f7011e08bfe6830c967b497bdf6d.jpg)
Membro desde: 26/11/2007 09:10:30
Mensagens: 593
Localização: Jundiaí-SP
Offline
|
71C4700 wrote:Este metodo retorna um objeto do tipo da interface List, acredito que seja por isso, pois esta interface nã possui implementação para adicionar algum elemento.
Desta maneira funcionou, acredito que seja porque o ArrayList possui implementação para o metodo de adicionar. Corrigam-me se estiver errado...
Att.
Cara, eu fiz teste aqui também.
Deste jeito funcionou, mas ocorreu que a lista e o array agora ficaram independentes. Ou seja, se modificar um o outro não é alterado.
A minha preocupação é que no livro da Kathy não fala nada sobre isto. Será que uma questão desse tipo pode pintar na prova?
Obrigado pelas respostas!
|
Rodrigo Malatesta Barbosa
Graduando em Tecnologia Informática Unicamp
SCJP 1.6 - 93%
"A disciplina é o caminho mais curto para o sucesso"
"Se não puder destacar pelo talento, vença pelo esforço. (Provérbio indiano)" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/07/2009 20:41:34
|
rmalati
Virtual Machine Man
![[Avatar]](/images/avatar/3bc8f7011e08bfe6830c967b497bdf6d.jpg)
Membro desde: 26/11/2007 09:10:30
Mensagens: 593
Localização: Jundiaí-SP
Offline
|
Acho que consegui entender...
Quando usamos o método asList para alimentar uma Lista através do array, tanto a lista quanto o array ficam ligados. Não sei, mas acredito que referênciam o mesmo objeto.
Como o array não é uma estrutura dinâmica, não podemos dar um lista.add(novoElemento), pois isto alteraria a estrutura do array.
Eu cheguei a esta conclusão quando fui utilizar o método List.toArray();
Neste caso, o método List.toArray(), tanto array quanto lista ficam independentes...
Resumindo pelo que entendi:
O método Arrays.asList(): a Lista referência o objeto Array. Não pode dar Lista.add() pois altera a estrutura do array e isso é impossível. Ocorre exceção de tempo de execução.
O método List.toArray(): Lista e array são independente. Pode dar List.add() que não ocorre problema.
É isso, não sei se está correto o que eu pensei, mas desta forma eu consegui entender.
Obrigado.
This message was edited 1 time. Last update was at 25/07/2009 20:48:34
|
Rodrigo Malatesta Barbosa
Graduando em Tecnologia Informática Unicamp
SCJP 1.6 - 93%
"A disciplina é o caminho mais curto para o sucesso"
"Se não puder destacar pelo talento, vença pelo esforço. (Provérbio indiano)" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/07/2009 21:11:01
|
71C4700
JavaEvangelist
![[Avatar]](/images/avatar/72824049a9d187c8848e6ba146b02ed3.jpg)
Membro desde: 25/03/2008 08:18:35
Mensagens: 364
Localização: Por ai...
Offline
|
Somente acrescentando, um exemplo para demonstrar que o array e o List 'apontam' para o mesmo objeto.
At..
|
[]This is Job!!!°°°°° |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/07/2009 22:36:40
|
rmalati
Virtual Machine Man
![[Avatar]](/images/avatar/3bc8f7011e08bfe6830c967b497bdf6d.jpg)
Membro desde: 26/11/2007 09:10:30
Mensagens: 593
Localização: Jundiaí-SP
Offline
|
Isso mesmo!!!
Obrigado.
|
Rodrigo Malatesta Barbosa
Graduando em Tecnologia Informática Unicamp
SCJP 1.6 - 93%
"A disciplina é o caminho mais curto para o sucesso"
"Se não puder destacar pelo talento, vença pelo esforço. (Provérbio indiano)" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/07/2009 19:05:51
|
thiago.correa
GUJ Master
![[Avatar]](/images/avatar/c37f9e1283cbd4a6edfd778fc8b1c652.jpg)
Membro desde: 26/03/2006 18:54:30
Mensagens: 1861
Offline
|
71C4700 wrote:Este metodo retorna um objeto do tipo da interface List, acredito que seja por isso, pois esta interface nã possui implementação para adicionar algum elemento.
Desta maneira funcionou, acredito que seja porque o ArrayList possui implementação para o metodo de adicionar. Corrigam-me se estiver errado...
Att.
Não cara, o raciocínio não é esse, esse método retorna alguma implementação de List, no caso se você olhar a implementação do método ele retorna um ArayList.
|
---
"Se não puder ajudar, atrapalhe, afinal de contas o importante é participar!"
Thiago
 |
|
|
 |
|
|