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? 
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.
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 