[RESOLVIDO] Vetor em JAVA

Estou com dificuldade para inserir um elemento no final de um vetor de modo que se no final dele ja existir um ou mais elementos, empurrar esses elementos para frente e depois inseri-lo no final, eu vi que existe o ArrayList, porém não posso usar nenhum método ou biblioteca para tal, apenas um vetor com 10 posições.

Na remoção de um elemento devo preencher com os elementos a frente.

Alguém poderia me ajudar? :frowning:

Vamos lá.
Se você tem um vetor, você pode percorrer as posições do mesmo de três maneiras:
1 - Ordenadamente e em ordem crescente, ou seja, da primeira para a última casa.
2 - Ordenadamente e em ordem decrescente, ou seja, da última para a primeira casa.
3 - Desordenadamente.

Qual dos casos você acha que é o teu caso?

Outro detalhe, sempre que você precisa “tirar” algo de alguma posição do array e pretende reaproveitar o mesmo posteriormente, precisa de uma variável auxiliar, cujo escopo dependerá de onde precisa do tal valor.

Com isso você já resolve.

Especificação ?

Imagine , esse exemplo ! Veja se consegui organizar o seu …

  ArrayList lista = getObs();
  double last = lista.get(lista.size() - 1); //Pegando o valor contido na última posição do array

eu acho que entendi

se vc tem um vetor de 10 posiçoes, vc precisa definir uma forma de testar se o ultimo elemento contem algo ou não.

vamos dizer que vc esta trabalhando com Object e se for null então esta vazio.

private Object[] vetor = new Object[10];
private final int ultimo = 9; // pode calcular de alguma forma isso tb

public insere(Object o) {
   if( vetor[ ultimo ] == null ){
       vetor[ ultimo ] = o;  
   } else {
// TODO implementar
   }
}

se vc inseriu pela primeira vez, beleza. mas se vc JA inseriu, vc tem que fazer umas mutretas.

por exemplo, se vc armazenar o total de elementos ja armazenados

public insere(Object o) {
   if( vetor[ ultimo ] == null ){
       vetor[ ultimo ] = o;
       total = 1;  
   } else {
// TODO implementar
   }
}

o q vc tem q fazer?

primeira posicao que contem algum elemento = 10 - total

posicao anterior = primeira posicao que contem algum elemento - 1

posicao anterior é positivo ou zero? ai basta fazer

loop:

variavel i começa em posição anterior;
ate o final - 1
incrementando 1 por vez

vetor[i] = vetor[ i + 1]

dessa forma vc deslocou todo mundo pra frente. se a posicao anterior for negativa, basta começar em 0

não esqueça de controlar a variavel total. vc pode substituir por “primeira posicao valida” e evita fazer umas contas malucas q sempre um +1 ou -1 pode estragar tudo.

de uma pensada sobre isso e veja se não fica simples

2 curtidas

Vlw peczenyj, era isso mesmo que precisa :slight_smile: