Usar Hashmaps para comparar claves y valores y sumar valores basados ​​en claves similares

¿Es esto lo que quieres?

public static void main(String[] args) {
    HashMap<String, String> hmap = new HashMap<>();
    HashMap<String, Float> h2map = new HashMap<>();

    hmap.put("order1", "pending");
    hmap.put("order2", "cancelled");
    hmap.put("order3", "pending");

    h2map.put("order1", 19.95f);
    h2map.put("order2", 19.95f);
    h2map.put("order3", 39.9f);

    Map<String, DoubleSummaryStatistics> grouping = hmap
            .entrySet()
            .stream()
            .collect(Collectors.groupingBy(Map.Entry::getValue, Collectors.summarizingDouble(e -> h2map.get(e.getKey()))));

    grouping.forEach((key, value) -> System.out.println(key + ": " + value.getCount() + " " + value.getSum()));
}

Tenga en cuenta que no hay recopilador de estadísticas de resumen para BigDecimal y este código solo funciona con Float o Double. Pero para los cálculos de dinero mejor use BigDecimal. Es posible implementar el recopilador personalizado si es necesario)

Respuesta 1

Tengo un pequeño programa que ya comenzó con múltiples elementos de menú. Cuando se hace clic en un elemento, me gustaría que se muestre algo en el marco, y cuando se hace clic en otro elemento, el primero desaparece y ...

Tengo una consulta que devuelve una lista de entidades. Cuando trato de poner esta lista en el caché, obtengo la familiar java.lang.IllegalArgumentException. Sin embargo ... puedo poner cada elemento dentro de la lista para ...

booleano yn = verdadero; while (yn) {System.out.println ("ingrese su nombre"); nombre de char = (char) System.in.read (); interruptor (nombre) {...

Estoy tratando de cargar un archivo en una aplicación de arranque de primavera que se ejecuta dentro de un contenedor Docker pero obtengo la siguiente excepción: java.nio.file.FileSystemNotFoundException en com.sun.nio ...