Scala para Java (programação funcional)

Me pediram para 'traduzir' algum código Scala para Java para um curso. No entanto, os requisitos da atribuição são que Java 8 e bibliotecas externas, comoJava funcional eTotalmente preguiçoso, não é permitido. A linha em Scala é:

charges.groupBy(_.cc).values.map(_.reduce(_ combine _)).toList

Eu tenho sido capaz de escrevergroupBy evalues mas.map e_.reduce ainda me iludem. Analisei o código-fonte dessas duas bibliotecas, bem como a fonte Scala, para tentar encontrar algo que me ajudasse a juntá-las, mas não consegui avançar.

GroupBy é implementado da seguinte maneira:

public Map<CreditCard, List<Charge>> groupBy(List<Charge> list)
{
    Map<CreditCard, List<Charge>> map = new TreeMap<CreditCard, List<Charge>>();
    for(Charge c: list)
    {
        List<Charge> group = map.get(c.cc);
        if(group == null)
        {
            group = new ArrayList();
            map.put(c.cc, group);
        }
        group.add(c);
    }
    return map;
}