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
Instructions de l’exercice
- Définissez une carte
enumpour stocker, dansstockByCategory, la quantité de chaqueProductCategory. - 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);
}
}