Alguém pode me ajudar a implementar um código? preciso adicionar um método que
deverá devolver a primeira posição da lista que se encontra o objeto pessoa
recebido pelo parâmetro. Caso este objeto não seja encontrado, o valor devolvido será -1
(menos 1). Abaixo encontra-se a estrutura que deverá ser utilizada por este método.
public int posicao(Pessoa pessoa){
}
Código a ser implementado:
package lista.vetorizada;
public class ListaVetor {
// Declarando e Inicializando um array de Aluno com capacidade 100.
private Pessoa[] pessoas = new Pessoa[100];
private int total_de_pessoas = 0;
public void adiciona(Pessoa pessoa) {
// this.aumentaEspaco();
this.pessoas[this.total_de_pessoas] = pessoa;
this.total_de_pessoas++;
}
public void adiciona(int posicao, Pessoa pessoa) {
// this.aumentaEspaco();
if(this.posicaoValida(posicao)){
for(int i = this.total_de_pessoas - 1; i >= posicao; i–)
this.pessoas[i + 1] = this.pessoas[i];
this.pessoas[posicao] = pessoa;
this.total_de_pessoas++;
}else
throw new IllegalArgumentException("Posição Inválida");
}
public Pessoa pega(int posicao) {
if(this.posicaoOcupada(posicao))
return (this.pessoas[posicao]);
else
throw new IllegalArgumentException("Posição Inválida");
}
public void remove(int posicao) {
if (this.posicaoOcupada(posicao)) {
for (int i = posicao; i < this.total_de_pessoas - 1; i++) {
this.pessoas[i] = this.pessoas[i + 1];
}
this.total_de_pessoas--;
}else
throw new IllegalArgumentException("Posição Inválida");
}
public boolean contem(Pessoa pessoa){
for(int i = 0; i < this.total_de_pessoas; i++)
if(this.pessoas[i].equals(pessoa))
return(true);
return(false);
}
public int tamanho(){
return(this.total_de_pessoas);
}
@Override
public String toString() {
String saida = “[]”;
if (this.total_de_pessoas != 0) {
saida = “[”;
for(int i = 0; i < this.total_de_pessoas - 1; i++) {
saida += this.pessoas[i] + ", ";
}
saida += this.pessoas[this.total_de_pessoas - 1];
saida += “]”;
}
// saida += " - tamanho = " + this.pessoas.length;
return (saida);
}
/* Métodos Privados */
private boolean posicaoValida(int posicao){
return(posicao >= 0 && posicao <= this.total_de_pessoas);
}
private boolean posicaoOcupada(int posicao){
return(posicao >= 0 && posicao < this.total_de_pessoas);
}
/* Usado para aumentar o vetor em 30 posições quando este ficar cheio */
private void aumentaEspaco(){
if(this.total_de_pessoas == this.pessoas.length){
Pessoa[] novoVetor = new Pessoa[this.pessoas.length + 30];
for(int i = 0; i < this.pessoas.length; i++)
novoVetor[i] = this.pessoas[i];
this.pessoas = novoVetor;
}
}
}