Redimensionando tamanho de um array

Pessoal, seguinte: tenho o seguinte array:
String a[]={“r”,“a”,“g”,“f”,“z”}

Quero inserir o elemento “b” na posição a[0]. Eu preciso deslocar todo o resto do vetor para uma posilçao adiante. Alguém saberia como fazer isso??

holiday,

vc nao pode modificar o tamanho do array!

para fazer o q vc quer eh preciso criar um novo array de tamanho 6.
preencher a primeira posição com o “b” e fazer um laço para preencher as demais posições com os elementos do antigo array de 5.

:wink:

Usa um Vector, um ArrayList, …

Holiday,

String[] Data = new String[5];
String[] newData = new String[6];
System.arraycopy(Data,0,newData,1,Data.length);
newData[0] := “b”
Data = newData;

em arraycopy

Data: array do qual os elementos são copiados
0: o ponto inicial
newData: array para onde os elementos serão copiados
0: o ponto em newData onde os dados começarão a ser copiados
Data.length: o numero de elementos a serem copiados

no final passamos newData para Data

Não sei se é o melhor jeito.

Ok?!?!

holiday,

Não sei se entendi bem, mas vamos lá! Você tem um array com X quantidade de posições e quer adicionar um item a mais no array.

Importante saber que uma vez declarado um array com N posições, este array não poderá ser mais alterado, pois o array tem tamanho estático, mas existem formas de se burlar isso, como nossos colegas falaram, o uso de Vector ou ArrayList.

Mas caso queria fazer isso na mão mesmo, faça da seguinte forma:

  • Crie um array1 com N posições e preencha-o;
  • Faça um algoritmo que receba o NOVO ITEM, depois clone este array1 para array2 com tamanho de N+1 e com uma estrutura de repetição, você desloca todos os itens dentro do array2, lembrado que o array2 tem tamanho de N + 1.
  • Após você move e adicionar na posição vazia o novo item, clone o array2 no array1.

Está feita! Agora você possui um array que começou com X tamanho e terminou com X+1.

Espero ter ajudado. Caso tenha alguma dúvida sobre a lógica, só postar.

Abraços,
Fábio Heleno

Obrigado pelas respostas, eu sei que poderia usar ArrayList ou Vector, mas quero fazer a mão mesmo com um array. Eu queria em código o seguinte:

Fazer a introdução do elemento “b” na posição a[0]. Meu vetor a[] ={“r”,“a”,“g”,“f”,“z”}. É preciso empurrar os elementos todos uma posição acima. Já tentei diversas vezes, mas nunca deu certo. É necessário redimensioná-lo, pois o array trabalha com tamanhos estáticos.

Vamos vem quem consegue fazer essa pessoal.