Estou tentando fazer um método que remova do meu vetor o Objeto Funcionário usando o seu Id, quero que retorne verdadeiro se funcionar e falso se não encontrar o Objeto.
Não estou sabendo como encontrar a posição do meu objeto usando o Id.
Se for um array, você tem que iterar pelos índices:
public boolean removerFuncionario(int id) {
for (int i = 0; i < this.funcionarios.length; i++) {
Funcionario f = this.funcionarios[i];
if (f.getId() == id) {
this.funcionarios[i] = null;
return true;
}
}
return false;
}
E repare também que o return false fica fora do for. Se ele for colocado dentro, logo no primeiro elemento ele já vai retornar (independente do ID ser encontrado ou não) e irá ignorar os demais. Mas a ideia é retornar true somente se for encontrado. Para retornar false, você só saberá depois que o for terminar, por isso fica fora do loop.
Agora se for uma lista (List, ArrayList, etc), aí fica diferente:
public boolean removerFuncionario(int id) {
Iterator<Funcionario> it = this.funcionarios.iterator();
while (it.hasNext()) {
Funcionario f = it.next();
if (f.getId() == id) {
it.remove();
return true;
}
}
return false;
}