CommencerCommencez gratuitement

Regrouper par catégories standardisées

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

Cet exercice fait partie du cours

<cours>Nettoyer des données en Java</cours>
Voir le cours

Instructions de l’exercice

  • Définissez une map d’enum pour stocker la quantité de chaque ProductCategory dans stockByCategory.
  • Fusionnez les quantités pour obtenir des sommes 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