Dificuldade em percorrer um Map

3 respostas
A

Eai galera…
to um pequeno problema a uns 2 dias pelo menos.
eu faço uma consulta no meu BD trazendo um objeto com uma coleção(collection)
ateh ai tdo certo…
entao em um de meus metodos eu preciso percorrer minha consulta e montar um map
aond eu devo separar os objetos ativos dos inativo para que eu possa calcular a porcentagem de cada um…
e não estou conseguindo por nada montar este meu método…
espero que alguem possa me ajudar…
segue abaixo o meu método incompleto. :slight_smile:

public Map<String, Map<String, String>> obterMapPeriodoXML(HistoricoMonitoramentoVo historicoMonitoramentoVo) throws ObjetoObrigatorioException
	{
		Validador.validaObjeto(historicoMonitoramentoVo);
		Map<ServicoVo, Map<Integer, HistoricoMonitoramentoVo>> mapXML = new HashMap<ServicoVo, Map<Integer, HistoricoMonitoramentoVo>>();
		for (ServicoVo servicoVo : historicoMonitoramentoVo.getServicoVo().getCollVO()) 
		{
			mapXML.put(servicoVo, new HashMap<Integer, HistoricoMonitoramentoVo>());
			for (HistoricoMonitoramentoVo historicoMonitoramentoHereVo : historicoMonitoramentoVo.getCollVO()) 
			{
				if (servicoVo.getCodigo() == historicoMonitoramentoHereVo.getServicoVo().getCodigo()) 
				{
					mapXML.get(servicoVo);
				}				
			}			
		}
		return mapXML;
	}

3 Respostas

alves.Felipe

cara… pelo que percebi…
vc tem uma lista de ativos… e a outra lista é onde esta a sua consulta, e vc tem que comprar as 2 lista…
depois colocar num Map o que for igual…é isso?

cara… onde vc quer chegar com isso ??

Map<ServicoVo, Map<Integer, HistoricoMonitoramentoVo>> mapXML = new HashMap<ServicoVo, Map<Integer, HistoricoMonitoramentoVo>>();

vc tem um Map de HistoricoMonitoramentoVO que o index é um ServicoVO
e vc esta tenando adicionar um ServicoVO…

mapXML.get(servicoVo);

não entendi nada…

A

entao…
na verdade eu tenho uma lista com minha consulta, que é o objeto “historicoMonitoramentoVo”, desta lista eu consigo pegar tbm os ativos historicoMonitoramentoVo.getServicoVo().setStatusServico(DomnAtivoInativo.ATIVO), que ai eu consigo
saber com todos os elementos menos os ativos eu consigo saber quantos sao inativos.
o “if” é para pegar somente os ativos e fazer um "add. " para poder fazer o calculo de porcentagem.
ja a parte mapXML.get(servicoVo); nao era nem pra ter sido enviado, me desculpem por esta parte.rsrs

alves.Felipe

cara, na verdade eu ainda não consegui descobri pq tem um for dentro de outro…
se vc fizer isso, já não estaria bom?:

for (HistoricoMonitoramentoVo h: historicoMonitoramentoVo.getCollVO()) if (h.status == Ativo).. //add no map

ou melhor ainda… vc não poderia consultar apenas os ativos do seu banco??

Criado 29 de abril de 2011
Ultima resposta 29 de abr. de 2011
Respostas 3
Participantes 2