Como criar esses 2 metodos no java no seguinte codigo

Mandarei o codigo sem os meus metodos pois eles estao compilando mais não estao sendo executados, gostaria de uma solução diferente de como ser feito e funcionar.

Metodo 1
Este método deverá devolver a primeira posição da lista que se encontra o
objeto 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(Object objeto){
// Implementação
}

Metodo 2
Este método deverá devolver um vetor de objetos contendo os objetos que se
encontram entre as posições enviadas, incluído elas. Caso algum dos limites (inferior ou
superior) recebidos seja inválido (fora dos limites da lista) ou o limite superior seja menor
que o inferior, lançar uma exceção, nos moldes dos exemplos já realizados, com a
mensagem “Intervalo Inválido”. Se os dois limites forem iguais, devolver um vetor
contendo apenas o objeto desta posição. O tamanho do vetor devolvido deverá ser igual ao
número de objetos contidas nele. Abaixo encontra-se a estrutura que deverá ser utilizada
por este método.
public Object[] listaObjetos(int inferior, int superior){
// implementação
}

Codigo que devera ser implementado o metodo.

public class ListaVetor {

private Object[] objetos = new Object[6];
private int total_de_objetos = 0;

public void adiciona(Object objeto){
    aumentaEspaco();
    this.objetos[this.total_de_objetos] = objeto;
    this.total_de_objetos++;
}

public void adiciona(int posicao, Object objeto){
    if(posicaoValida(posicao)){
        aumentaEspaco();
        // Deslocamento das pessoas uma posição para frente //
        for(int i = this.total_de_objetos - 1; i >= posicao; i--)
            this.objetos[i + 1] = this.objetos[i];
        
        this.objetos[posicao] = objeto;
        this.total_de_objetos++;
    }else{
        throw new IllegalArgumentException("Posição " + posicao + " Inválida!");
    }
}

public Object pega(int posicao){
    if(posicaoOcupada(posicao)){
        return(this.objetos[posicao]);
    }else{
        throw new IllegalArgumentException("Posição " + posicao + " não está ocupada!");
    }
}

public void remove(int posicao){
    if(posicaoOcupada(posicao)){
        for(int i = posicao; i < this.total_de_objetos - 1; i++)
            this.objetos[i] = this.objetos[i + 1];
        this.total_de_objetos--;
    }else{
        throw new IllegalArgumentException("Posição " + posicao + " não está ocupada!");
    }
}

public boolean contem(Object objeto){
    for(int i = 0; i < this.total_de_objetos; i++)
        if(this.objetos[i].equals(objeto))
            return(true);
    return(false);
}

public int tamanho(){
    return(this.total_de_objetos);
}


@Override
public String toString() {
    String saida = "[]";
    if(this.total_de_objetos != 0){
        saida = "[";
        for(int i = 0; i < this.total_de_objetos - 1; i++){
            saida += this.objetos[i] + ", ";
        }
        saida += this.objetos[this.total_de_objetos - 1] + "]";
    }
    saida += "\nTotal de pessoas = " + this.total_de_objetos + "\nTamanho do vetor = " + this.objetos.length;
    return(saida);
}

// Métodos privados auxiliares //

private void aumentaEspaco(){
    if(this.total_de_objetos == this.objetos.length){
        Object[] novoVetor = new Object[this.objetos.length + 4];
        for(int i = 0; i < this.total_de_objetos; i++)
            novoVetor[i] = this.objetos[i];
        
        this.objetos = novoVetor;
    }
}

private boolean posicaoValida(int posicao){
    return(posicao >= 0 && posicao <= this.total_de_objetos);
}

private boolean posicaoOcupada(int posicao){
    return(posicao >= 0 && posicao < this.total_de_objetos);
}
}