CommencezCommencez gratuitement

Regrouper par catégories normalisées

Maintenant que vous avez normalisé les catégories de votre inventaire d'appareils électroniques, vous souhaitez calculer la quantité de chaque catégorie. Fusionnez les quantités pour obtenir des totaux par catégorie.

Cette activité fait partie du cours

Nettoyer des données en Java

Voir le cours

Instructions de l’exercice

  • Définissez une carte enum pour stocker, dans stockByCategory, la quantité de chaque ProductCategory.
  • Fusionnez les quantités en totaux par catégorie dans stockByCategory.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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);
    }
}
Modifier et exécuter le code