Boa tarde a todos, estou começando a programar em Java e não estou achando uma maneira de resolver um exercício que tenho aqui.
É o seguinte:
tenho meus objetos Contribuintes e cada uma tem um imposto a pagar, quando crio o obj coloco ele em um HashMap e agora preciso saber qual desses obj que estão dentro do meu Hash é o que tem maior imposto, eis ai minha dúvida: como percorrer um HahMap?
Para percorrer um Map, use um iterador. Vou dar três alternativas.
// Percorrendo um map pelas chavesMap<Integer,Contribuinte>contribuintes=newHashMap<Integer,Contribuinte>();...for(IntegercodContribuinte:contribuintes.keySet()){Contribuintec=contribuintes.get(codContribuinte);....}
// Percorrendo um map pelas entradasMap<Integer,Contribuinte>contribuintes=newHashMap<Integer,Contribuinte>();...for(Map.Entry<Integer,Contribuinte>entrada:contribuintes.entrySet()){IntegercodContribuinte=entrada.getKey();Contribuintec=entrada.getValue();....}
// Percorrendo um map pelos valores (mas aí você não vai ter as chaves!)Map<Integer,Contribuinte>contribuintes=newHashMap<Integer,Contribuinte>();...for(Contribuintec:contribuintes.values()){....}
I
ismael_irc
desculpe mais não consegui entender os códigos, no último exemplo vc disse que eu não vou ter as chaves, o que eu preciso depois de percorrer meu Hash é retornar o contribuinte com maior imposto, posso utilizar este ultimo?
Se vc poder explicar melhor agradeço
T
thingol
Tá bom, vamos lá.
// Percorrendo um map pelas chavesMap<Integer,Contribuinte>contribuintes=newHashMap<Integer,Contribuinte>();doubleimposto=0.0;ContribuintecontribuinteComMaiorImposto=null;for(IntegercodContribuinte:contribuintes.keySet()){Contribuintec=contribuintes.get(codContribuinte);if(c.getImposto()>imposto){contribuinteComMaiorImposto=c;}}System.out.println(contribuinteComMaiorImposto.toString());
// Percorrendo um map pelas entradasMap<Integer,Contribuinte>contribuintes=newHashMap<Integer,Contribuinte>();doubleimposto=0.0;ContribuintecontribuinteComMaiorImposto=null;for(Map.Entry<Integer,Contribuinte>entrada:contribuintes.entrySet()){IntegercodContribuinte=entrada.getKey();Contribuintec=entrada.getValue();if(c.getImposto()>imposto){contribuinteComMaiorImposto=c;}}System.out.println(contribuinteComMaiorImposto.toString());
// Percorrendo um map pelos valores (mas aí você não vai ter as chaves!)Map<Integer,Contribuinte>contribuintes=newHashMap<Integer,Contribuinte>();doubleimposto=0.0;ContribuintecontribuinteComMaiorImposto=null;for(Contribuintec:contribuintes.values()){if(c.getImposto()>imposto){contribuinteComMaiorImposto=c;}}System.out.println(contribuinteComMaiorImposto.toString());