Problema com o Java 8 Lambda para final efetivo ao incrementar contagens

Eu quero usar a expressão Java 8 Lambda no cenário a seguir, mas estou recebendoA variável local fooCount definida em um escopo anexo deve ser final ou efetivamente final. Entendo o que diz a mensagem de erro, mas preciso calcular a porcentagem aqui, por isso preciso aumentarfooCount ebarCount depois calcule a porcentagem. Então, qual é o caminho para alcançá-lo:

        // key is a String with values like "FOO;SomethinElse" and value is Long
        final Map<String, Long> map = null;
    ....
    private int calculateFooPercentage() {
        long fooCount = 0L;
        long barCount = 0L;

        map.forEach((k, v) -> {
            if (k.contains("FOO")) {
                fooCount++;
            } else {
                barCount++;
            }
        });

        final int fooPercentage = 0;
        //Rest of the logic to calculate percentage
        ....
        return fooPercentage;
    }

Uma opção que tenho é usarAtomicLong aqui em vez delong mas gostaria de evitá-lo; portanto, mais tarde, se possível, quero usar o fluxo paralelo aqui.

questionAnswers(3)

yourAnswerToTheQuestion