Duvida na implementacao

12 respostas
F
Estou com uma duvida na implementação de um metodo
public void maiorSalario() {
		
		for (Funcionario func : funcionarios) {
			if( func.getSalario() > maiorSalario) {
				funcionarioComMaiorSalario.clear();
				funcionarioComMaiorSalario.add(func);
			} 
		}
tipo partindo do ponto q soh vai fica um funcionario com o salario maior tudo bem, vai ficar soh ele no ArrayList, e agora se tiverem dois funcionario com salarios iguais que sejam o maior salario como faco pra implementar? Desde ja muito obrigado, Abraços

12 Respostas

marciosantri

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 >.

F

tipo eu to usando o clear do arraylist pra apaga o anterior, ai vai apaga do mesmo jeito.

marciosantri

Vc quer que fiquem os dois funcionários, é isto?

F

isso, vamo dizer tem o joao e o jose caso ganham 1800, ficam os dois. se nao tive salario maior

marciosantri

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]

F

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…

francislon
for (Funcionario func : funcionarios) {
 	if (func.getSalario() == maiorSalario)
 		funcionarioComMaiorSalario.add(func);
 	if(func.getSalario() &gt= maiorSalario) {
                if (func.getSalario() == maiorSalario)
                { 		
 		funcionarioComMaiorSalario.add(func);
                }

                else
                {
                funcionarioComMaiorSalario.clear();
                funcionarioComMaiorSalario.add(func);                
                }
 	} 
 }
francislon

Só corrigindo o código anterior(velha mania de copiar e colar :D):

for (Funcionario func : funcionarios) {
  	if(func.getSalario() &gt= maiorSalario) {
                 if (func.getSalario() == maiorSalario)
                 { 		
  		funcionarioComMaiorSalario.add(func);
                 }
 
                 else
                 {
                 funcionarioComMaiorSalario.clear();
                 funcionarioComMaiorSalario.add(func);                
                 }
  	} 
  }
F

ainda nao funciona por causa do clear…

F

Exite algum metodo para comparar diretamente os objetos sem usar uma variavel? se alguem me ajudar agradeço…

francislon

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.

F

tava faltando o maiorSalario = func.getSalario();
tanto no if como no else, valeu ai pela ajuda.
abraço!

Criado 20 de junho de 2007
Ultima resposta 22 de jun. de 2007
Respostas 12
Participantes 3