Contador de votos com ArrayList

Pessoal seguinte: faz tempo demais que nao programo, e agora apareceu um trabalho na qual preciso utilizar destes artifícios mágicos. Porém não sei se estou nerovoso demais ou sei lá o que, só sei que to emperrado. Abaixo meu Diagrama UML

Esqueçam os pequenos erros do diagrama de classe, por gentileza a questão está na minha classe conta voto.

Essa classe recebe um arrayList de Urnas. Essas urnas contem ArrayList. Esses votos contém uma Chapa (int: numeroChapa).

Eu garanto que a urna está recebendo votos. Então toda essa parte está OK. Meu problema é comparar e colocar os votos na contagem certa.

Não sei se é simples ou não, mas preciso de vossa ajuda ou um norte para o que posso fazer com isso.

Desde já agradeço

Considerando que urna contém uma lista de Voto e Voto possui um atributo chapa, seria algo como:

for(Voto voto : urna.getVotos()) {
    
}

Isso permite que você itere sobre os votos.
Eu sugeriria criar um atributo do tipo Map<Integer, Integer> para armazenar a combinação de chapas x quantidade de votos recebidos pela chapa. Ficando algo como:

Map<Integer, Integer> totalVotos = new HashMap<>();

for(Voto voto : urna.getVotos()) {
    Integer numChapa = voto.getChapa();
    Integer totalChapa = totalVotos.get(numChapa);
    if(null = totalChapa) {
        totalChapa = 0;
    }
    totalVotos.put(numChapa, totalChapa);
}

Isso deve resolver o problema da contagem.

1 curtida