Scala a Java (programación funcional)

Me han pedido que 'traduzca' algún código Scala a Java para un curso. Sin embargo, los requisitos de la asignación son que Java 8 y las bibliotecas externas, comoJava funcional yTotalmente perezoso, no estan permitidos. La línea en Scala es:

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

He podido escribirgroupBy yvalues pero.map y_.reduce Todavía me elude. He examinado el código fuente de esas dos bibliotecas, así como el código fuente de Scala, para tratar de encontrar algo que me ayude a armarlos, pero no he podido avanzar.

GroupBy se implementa de la siguiente manera:

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;
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta