Iniciar um ArrayList no ponto de inicialização  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
Bruno Cardoso
Java Ninja

Membro desde: 30/11/2002 14:35:21
Mensagens: 260
Localização: Porto, Portugal
Offline

Boas,

Tenho um duvida bastante basica a meu ver... reparem no seguinte código...



é possivel fazer o mesmo usando uma arraylist? algo do tipo:



Isto nao funciona mas ha alguma maneira de inicializar uma arraylist quando a criamos?

"If I find 10.000 ways something won't work, I haven't failed." - Thomas Edison
[Email]
dango
JavaEvangelist
[Avatar]

Membro desde: 09/11/2002 08:56:47
Mensagens: 497
Localização: Catanduva SP
Offline

Eu dei uma olhada na API e existem apenas três construtores para a classe ArrayList...; um sem argumentos, outro que recebe um objeto Collection e outro que recebe um inteiro, especificando a capacidade do ArrayList.

Quando li sua mensagem minha idéia era passar um array anônimo na criação do ArrayList.

Pensei numa solução que talvez seja meio tosca, mas de qualquer forma, ai vai:



Espero ter ajudado!
Abraços.
Rafael Afonso
Virtual Machine Man
[Avatar]
Membro desde: 05/12/2002 16:03:43
Mensagens: 719
Localização: São Paulo/SP
Offline

Dango:

Se me permite a intromissão, seu ArrayList não ficaria melhor assim:


Li em algum lugar que a classe ArrayList começa com um array interno de Objects de tamanho 10. E cada vez que ultrapassa o tamanho deste array interno, é criado um novo com o dobro do tamanho do original; e todos os componentes do array original são copiados para o novo array.
Por outro lado, se passasse o tamanho de o para super, o tamanho inicial do ArrayList seria igual ao tamanho de o. Assim, não seria necessário - na construção do MyArrayList - criar novos arrays e alocar memória. Assim há aumento do desempenho. Talvez nada significante, mas ajuda um pouco.
Por favor, se falei alguma besteira, me corrigam.

Grato,

Rafael Ubiratam Clemente Afonso
---------------------------------------
GitHub
ScalaFX
LinkedIn
[MSN]
Bruno Cardoso
Java Ninja

Membro desde: 30/11/2002 14:35:21
Mensagens: 260
Localização: Porto, Portugal
Offline

Boas,

obrigadao pela ajuda pessoal mas eu nao queria ter que fazer isso, eu queria criar uma arraylist porque nao posso ir buscar valores em posicoes especificas de um array normal no velocity.. mas ja arranjei uma maneira melhor de fazer isto, criei um metodo no objecto q e passado para o velocity, e esse metodo retorna, a posicao que eu quero do array:



É isto.. de qualquer maneira mais uma vez obrigado.

PEACE!

"If I find 10.000 ways something won't work, I haven't failed." - Thomas Edison
[Email]
dango
JavaEvangelist
[Avatar]

Membro desde: 09/11/2002 08:56:47
Mensagens: 497
Localização: Catanduva SP
Offline

Se me permite a intromissão


Isso é um fórum; *por favor*, intrometam-se

Você está correto, Rafael. É isso mesmo; fica *muito* melhor!

Além disso, em situações onde não se conhece a quantidade de elementos que serão inseridos no ArrayList, pode-se utilizar o método trimToSize() para reduzir o espaço alocado para o necessário para os elementos inseridos.

Abraços.
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Morcego wrote:Boas,
eu queria criar uma arraylist porque nao posso ir buscar valores em posicoes especificas de um array normal no velocity...


Pois é, o Velocity não te deixa fazer isso pra evitar ter que lidar com IndexOutOfBoundsExceptions. Mas, pelo que eu vejo, vc conseguiu "subverter" o Velocity muito bem
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Scrabby
Entusiasta Java

Membro desde: 05/03/2003 20:25:39
Mensagens: 22
Offline

Pessoal uma dúvida, o dango lá em cima escreveu algo assim:


minha dúvida é a seguinte, List é uma interface não?
então essa linha não teria que ser digitada mais ou menos assim:

pq pelo o que eu saiba não se pode instanciar uma interface.

AJUDA
[ICQ]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Scrabby wrote:pq pelo o que eu saiba não se pode instanciar uma interface.


Ele não está instanciando uma interface, ele está instanciando a classe MyArrayList, e atribuindo uma referência da instância à variável ar, do tipo List, que é uma interface. É o bê-a-bá do polimorfismo
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team