Code Demo · Java · Stream Aggregation

java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Main {
  static class Order {
    final String customer;
    final double total;
    Order(String customer, double total) { this.customer = customer; this.total = total; }
  }

  public static void main(String[] args) {
    List<Order> orders = new ArrayList<Order>();
    orders.add(new Order("Ada", 42.50));
    orders.add(new Order("Lin", 18.00));
    orders.add(new Order("Ada", 12.25));

    Map<String, Double> totals = new HashMap<String, Double>();
    for (Order order : orders) totals.put(order.customer, totals.getOrDefault(order.customer, 0.0) + order.total);
    for (Map.Entry<String, Double> entry : totals.entrySet()) System.out.printf("%s: %.2f%n", entry.getKey(), entry.getValue());
  }
}
819 characters23 lines< 2.4 KB