[RESOLVIDO] Vetor em JAVA

5 respostas Resolvido
programaçãojava
L

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:

5 Respostas

D

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.

C

Especificação ?

C

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
P
Solucao aceita

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

L

Vlw peczenyj, era isso mesmo que precisa :slight_smile:

Criado 29 de agosto de 2018
Ultima resposta 30 de ago. de 2018
Respostas 5
Participantes 4