public void maiorSalario() {
for (Funcionario func : funcionarios) {
if( func.getSalario() > maiorSalario) {
funcionarioComMaiorSalario.clear();
funcionarioComMaiorSalario.add(func);
}
}
Duvida na implementacao
12 Respostas
Se não importar se for o primeiro ou o último funcionário com o maior salário (no caso de salários iguais), coloque >= ao invés de >.
tipo eu to usando o clear do arraylist pra apaga o anterior, ai vai apaga do mesmo jeito.
Vc quer que fiquem os dois funcionários, é isto?
isso, vamo dizer tem o joao e o jose caso ganham 1800, ficam os dois. se nao tive salario maior
Faz algo mais ou menos assim que deve funcionar.
for (Funcionario func : funcionarios) {
if (func.getSalario() == maiorSalario)
funcionarioComMaiorSalario.add(func);
else if(func.getSalario() > maiorSalario) {
funcionarioComMaiorSalario.clear();
funcionarioComMaiorSalario.add(func);
}
}
[Editado]Ao invés de “=”, era “==”. Coisas do horário…[/Editado]
nao daria tb por causa do clear ia fica so o ultimo func, o clear ta matando meu metodo, eu to atribuindo a variavel maiorsalario = 0; pra pode comeca, acho q vou ter q achar outra forma pra faze esse metodo
funciona, alguma sugestao?
valeu…
for (Funcionario func : funcionarios) {
if (func.getSalario() == maiorSalario)
funcionarioComMaiorSalario.add(func);
if(func.getSalario() >= maiorSalario) {
if (func.getSalario() == maiorSalario)
{
funcionarioComMaiorSalario.add(func);
}
else
{
funcionarioComMaiorSalario.clear();
funcionarioComMaiorSalario.add(func);
}
}
}
Só corrigindo o código anterior(velha mania de copiar e colar :D):
for (Funcionario func : funcionarios) {
if(func.getSalario() >= maiorSalario) {
if (func.getSalario() == maiorSalario)
{
funcionarioComMaiorSalario.add(func);
}
else
{
funcionarioComMaiorSalario.clear();
funcionarioComMaiorSalario.add(func);
}
}
}
ainda nao funciona por causa do clear…
Exite algum metodo para comparar diretamente os objetos sem usar uma variavel? se alguem me ajudar agradeço…
Mas no caso ele só vai dar clear se o salario for maior do que os que tem no ArrayList. E se o salário for igual ele adiciona sem dar clear.
tava faltando o maiorSalario = func.getSalario();
tanto no if como no else, valeu ai pela ajuda.
abraço!