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>Instructions de l’exercice
- Définissez une map d’
enumpour stocker la quantité de chaqueProductCategorydansstockByCategory. - 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);
}
}