eu estou precisando pegar o maior e o menor “valorAjustado” de cada “Nivel”
com esses campos eu posso gerar a amplitude que é o (Maior/Menor)
Preciso de saber qual é a melhor forma de se fazer isso ou como fazer???
onde o valor ajustado é o salario que eu preciso do maior e do menor por nivel
Obrigado!
C
clarel.filho
Vou lhe mandar um exemplo de como você pode fazer, usando apenas o valorajustado… sem usar a parte de nível… você pode melhorar a lógica disto e usar…
classe Main
importjava.util.ArrayList;importjava.util.List;publicclassmain{/** * @param args */publicstaticvoidmain(String[]args){// vamos supor que você faz uma consultar no banco, e retorne então um// ArrayList d objetos..// prefiro trabalhar desta forma, então é assim que vou lhe passar// list do java.util declarada para TabelaSalarial..// você pode ter a lista do tipo que você quiser, só precisa declarar..List<TabelaSalarial>tabela=newArrayList<TabelaSalarial>();// declarando alguns objetos, somente para usarmos dentor da lista..// para exemplo.. você preenchera esta lista de forma diferente..TabelaSalarialsalario1=newTabelaSalarial();salario1.setValorAjustado(4.0);TabelaSalarialsalario2=newTabelaSalarial();salario2.setValorAjustado(4.0);TabelaSalarialsalario3=newTabelaSalarial();salario3.setValorAjustado(9.0);// adicionando na lista.tabela.add(salario1);tabela.add(salario2);tabela.add(salario3);// dentro da classes tabelasalarial está a função, então no caso tanto// faz qual tabela eu passar// para usarmos a função.. pois eu estou mandando a lista de onde ele// vai pegar..System.out.println(salario1.retornaMaior(tabela).getValorAjustado());System.out.println(salario1.retornaMenor(tabela).getValorAjustado());}}
classe tabelasalarial
importjava.util.List;publicclassTabelaSalarial{privateLongcodigo;privateLongidProjeto;privateLongnivel;privateStringpadrao;privatedoubleacrescimo;privatedoublevalor;privatedoublevalorAjustado;privatedoublevalorHora;privateStringcargos;privateStringdescricaoNivel;privateStringamplitude;publicLonggetCodigo(){returncodigo;}publicvoidsetCodigo(Longcodigo){this.codigo=codigo;}publicLonggetIdProjeto(){returnidProjeto;}publicvoidsetIdProjeto(LongidProjeto){this.idProjeto=idProjeto;}publicLonggetNivel(){returnnivel;}publicvoidsetNivel(Longnivel){this.nivel=nivel;}publicStringgetPadrao(){returnpadrao;}publicvoidsetPadrao(Stringpadrao){this.padrao=padrao;}publicdoublegetAcrescimo(){returnacrescimo;}publicvoidsetAcrescimo(doubleacrescimo){this.acrescimo=acrescimo;}publicdoublegetValor(){returnvalor;}publicvoidsetValor(doublevalor){this.valor=valor;}publicdoublegetValorAjustado(){returnvalorAjustado;}publicvoidsetValorAjustado(doublevalorAjustado){this.valorAjustado=valorAjustado;}publicdoublegetValorHora(){returnvalorHora;}publicvoidsetValorHora(doublevalorHora){this.valorHora=valorHora;}publicStringgetCargos(){returncargos;}publicvoidsetCargos(Stringcargos){this.cargos=cargos;}publicStringgetDescricaoNivel(){returndescricaoNivel;}publicvoidsetDescricaoNivel(StringdescricaoNivel){this.descricaoNivel=descricaoNivel;}publicStringgetAmplitude(){returnamplitude;}publicvoidsetAmplitude(Stringamplitude){this.amplitude=amplitude;}// funcao que recebe a list de tabelas salariais, e retorna o objeto// que contém o maior valorajustado..// pegando todo o objeto, pode pegar o codigo dele, cargo,etc..publicTabelaSalarialretornaMaior(List<TabelaSalarial>tabela){TabelaSalarialmaior=newTabelaSalarial();// declarando q o primeiro/onde vai começar a comparar é o primeiro da// list.// não estou testando aki se a tabela está cheia ou não, e nem se o// valor é valido (!= de null);// fazendo bem simples pra você pegar a lógicamaior=tabela.get(0);// for para percorrer a listafor(TabelaSalarialts:tabela){// se encontra um maior ou igual, mudar substitui o objeto que vai// retornar.if(ts.getValorAjustado()>=maior.getValorAjustado())maior=ts;}returnmaior;}// funcao que recebe a list de tabelas salariais, e retorna o objeto// que contém o menor valorajustado..// pegando todo o objeto, pode pegar o codigo dele, cargo,etc..publicTabelaSalarialretornaMenor(List<TabelaSalarial>tabela){TabelaSalarialmenor=newTabelaSalarial();// declarando q o primeiro/onde vai começar a comparar é o primeiro da// list.// não estou testando aki se a tabela está cheia ou não, e nem se o// valor é valido (!= de null);// fazendo bem simples pra você pegar a lógicamenor=tabela.get(0);// for para percorrer a listafor(TabelaSalarialts:tabela){// se encontra um menor ou igual, mudar substitui o objeto que vai// retornar.if(ts.getValorAjustado()<=menor.getValorAjustado())menor=ts;}returnmenor;}}
saida:
9.0
4.0
espero que ajude pelo menos com a lógica…
abraço!
M
marcelowender
clarel.filho muito obrigado por sua explicação
porém debuguei esse codigo e occorreu o seguinte ele realmente pega o maior e o menor porem ele pega o maior e o menor de todas as tabelas e eu preciso por nivel!
Voce faz ideia de como implementar?
Novamente obrigado pela atenção!
Cara, você pode retornar uma lista então…
e dentro do método, fazer uma lógica que percorra a lista que enviou… separa ela por niveis… e após isto retorne a lista com o maior e menor de kda nivel…
OOOU
deixe a função como está, mas inves de mandar a lista com todos…
já manda a lista separada por níveis… ai já é meio caminho andado!