arrays - Como aumentar o tamanho de uma array?
Perguntas � arrays � Como aumentar o tamanho de uma array?
Como aumentar o tamanho de uma array?
Tenho a seguinte array:
int[] idades = new int[10];
idades[0] = 5;
idades[2] = 18;
E assim por diante. Depois, se quiser inserir mais de 10 ints nessa array, como posso fazer? Vi que idades.length = 20 não funciona!
criado 24 de abr de 2013
editado 24 de abr de 2013
Existe uma forma de fazer isto usando uma função chamada System.arraycopy que na prática copia o conteúdo de uma array em outra com tamanho maior.
int[] novoArray = new int[idades.length * 3];
System.arraycopy(idades, 0, novoArray, 0, idades.length);
Mas o melhor a fazer é utilizar as classes Java Collections.
Só para esclarecer. Em Java, não se pode aumentar ou diminuir o tamanho de um array. Entretanto, pode-se definir um novo array, com o tamanho desejado, e copiar o conteúdo do array antigo para o array novo. É isso que o pvrsouza fez. De qualquer forma, System.arraycopy não serve só para isso (tem 1001 utilidades). Ele pode servir, por exemplo, para deslocar uma série de elementos em um array.
— bezier curve 25 de abr de 2013
Recomendo utilizar o java.util.List se você não souber o tamanho exato que seu array vai ter.
No caso do array vc precisa instancia-lo novamente com o novo tamanho porém você ira perder seus dados.
idades = new int[20]
nesse caso ele perderia tudo o que havia dentro da array. bom deixar claro isso.
— Paulo Silveira 24 de abr de 2013
Gabriel, como o Paulo falou, desta forma ele iria perder tudo que já estava no array idades. Acredito que não seja isso que ele quer. Repare que ele destacou no texto dele : "...se quiser inserir mais de 10 ints nessa array".
— pvrsouza 24 de abr de 2013
foi o que eu disse eu aconselhei ele a usar o java.util.List e avisei que ele perderia tudo.
— Gabriel Miranda Lyra 24 de abr de 2013
Não é a resposta que estava procurando? Procure outras perguntas com as tags arrays java ou faça a sua própria pergunta.