Problema em Lista Simples Java

Classes a serem criadas:
Classe Funcionário
Classe Lista
Classe TesteLista (contendo o método main)
Deve ser implementada uma Lista para resolver o problema da listagem de Funcionários. A
Classe Lista deve conter as seguintes operações:
• Adiciona um dado Funcionário no fim da Lista.
• Buscar um funcionário à partir da sua posição na Lista
• Remover um funcionário de uma determinada posição da Lista
• Pesquisar se um Funcionário existe à partir do seu nome.
• Informa o número de Funcionários armazenados.
• Imprimir todos os Funcionários e seus respectivos salários
Para simplificar, a Classe Funcionário deve possuir somente o atributo privado nome com
seus respectivos métodos get e set.
Segue um esboço da Classe Lista:

public class Lista {
// Declarando e Inicializando um array/vetor de Funcionario com capacidade 100.
 private Funcionario[] funcionarios = new Funcionario[100];

 private int totalDeFuncionarios = 0;

 public void adiciona(Funcionario func) {
 // implementação
 }
 public Funcionario pega(int posicao) {
if (!this.posicaoOcupada(posicao)) {
 throw new IllegalArgumentException("Posição inválida");
}
return this.funcionarios[posicao];
 }
 private boolean posicaoOcupada(int posicao) {
 return posicao >= 0 && posicao < this.totalDeFuncionarios;
 }
 public void remove(int posicao) {
if (!this.posicaoOcupada(posicao)) {
 throw new IllegalArgumentException("Posição inválida");
}
for (int i = posicao; i < this.totalDeFuncionarios; i++) {
 this.funcionarios[i] = this.funcionarios[i + 1];
}
this.totalDeFuncionarios--;
 }
 public boolean contem(Funcionario func) {
 // implementação
 }
 public int tamanho() {
 // implementação
 }
 public String toString() {
if (this.totalDeFuncionarios == 0) {
return "[]";
}
StringBuilder builder = new StringBuilder();
builder.append("[");
builder.append(totalDeFuncionarios + ", ");
for (int i = 0; i < this.totalDeFuncionarios; i++) {
builder.append(this.funcionarios[i].getNome());
builder.append(", ");
}
builder.append("]");
return builder.toString();
 }
}

Classe TesteLista

public class TesteLista {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
      Funcionario f1 = new Funcionario();
Funcionario f2 = new Funcionario();
Funcionario f3 = new Funcionario();
Funcionario f4 = new Funcionario();
Funcionario f5 = new Funcionario();
f1.setNome("André");
f2.setNome("Cláudia");
f3.setNome("Pedro");
Lista lista = new Lista();
lista.adiciona(f1);
lista.adiciona(f2);
lista.adiciona(f3);
System.out.println(lista.toString());
System.out.println(lista.pega(0).getNome());
System.out.println(lista.pega(1).getNome());
System.out.println(lista.pega(2).getNome());
lista.remove(0);
System.out.println(lista.toString());
f4.setNome("Ana");
lista.adiciona(f4);
f5.setNome("Eduardo");
System.out.println(lista.contem(f4));
System.out.println(lista.contem(f5));
System.out.println(lista.tamanho());
    }
    
}

E qual é o problema? Ou quer que alguém diga se está certo?

Abraço.

@TerraSkilll
preciso que o programa tenha essas funções, porem não sei como implementar, e preciso que seja nesses códigos que enviei, a classe “Funcionario” com o get e set já foi criada

• Adiciona um dado Funcionário no fim da Lista.
• Buscar um funcionário à partir da sua posição na Lista
• Remover um funcionário de uma determinada posição da Lista
• Pesquisar se um Funcionário existe à partir do seu nome.
• Informa o número de Funcionários armazenados.
• Imprimir todos os Funcionários e seus respectivos salários

Foi vc que fez as classes?? a logica ficou muito boa, a meu ver.

@Jederson_Andre não já recebi as classes prontas para implementar essas funcionalidades que disse acima

E você quer que a gente faça tudo para você?