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());
}
}