Items Processor
import java.util.List;
import java.util.Map;
class Main {
public static void main(String[] args) {
List<Item> items = List.of(
new Item("Mouse", 15.0), // Cheap
new Item("Mouse", 25.0), // Moderate
new Item("Keyboard", 120.0), // Expensive
new Item("Mouse", 10.0) // Cheap
);
ItemProcessor processor = new ItemProcessorImpl();
Map<String, Integer> byCategory = processor.countItemsByCategory(items);
byCategory.forEach((k,v) -> System.out.println(k + ": " + v));
Map<String, Double> discounts = processor.calculateTotalDiscounts(items);
discounts.forEach((k,v) -> System.out.println(k + ": " + v));
Map<String, Integer> byName = processor.countItemsByName(items);
byName.forEach((k,v) -> System.out.println(k + ": " + v));
}
}INFO