Bắt đầu ngayBắt đầu miễn phí

Nhóm theo danh mục đã chuẩn hóa

Sau khi bạn đã chuẩn hóa các danh mục trong kho điện tử, hãy tính số lượng cho từng danh mục. Gộp các số lượng vào tổng theo danh mục.

Bài tập này là một phần của khóa học

Làm sạch dữ liệu bằng Java

Xem khóa học

Hướng dẫn bài tập

  • Định nghĩa một enum map để lưu số lượng của mỗi ProductCategory trong stockByCategory.
  • Gộp các số lượng thành tổng theo danh mục trong stockByCategory.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

public class ElectronicsCategoryExample {
    public enum ProductCategory {
        ELECTRONICS,
        HOME_APPLIANCES,
        UNCATEGORIZED;
    }

    public static void main(String[] args) {
    	Map categoryMap = new HashMap<>();
        categoryMap.put("Home Appliances", ProductCategory.HOME_APPLIANCES);
        categoryMap.put("home appliances", ProductCategory.HOME_APPLIANCES);
        categoryMap.put("HomeAppliances", ProductCategory.HOME_APPLIANCES);
        categoryMap.put("Electronics", ProductCategory.ELECTRONICS);
        categoryMap.put("electronics", ProductCategory.ELECTRONICS);
        categoryMap.put("Electronic", ProductCategory.ELECTRONICS);
        
        Map rawData = Map.of(
                "Home Appliances", 50,
                "home appliances", 25,
                "HomeAppliances", 15,
                "Electronics", 30,
                "electronics", 20,
                "Electronic", 10);

        // Define an enum map to store the quantity of each ProductCategory
        Map stockByCategory = new ____<>(____.class);

        // Merge the quantities into category sums
        rawData.forEach((raw, quantity) -> ____.____(categoryMap.get(raw), quantity, Integer::sum));

		System.out.println("Stock by category:");
        System.out.println(stockByCategory);
    }
}
Chỉnh sửa và Chạy Mã