Récapitulatif - Opérations HashMap
Fait partie de la section Logique & Flux du Journey Java de Coddy — leçon 21 sur 59.
Défi
FacileCréez une méthode nommée <strong>processHashMap</strong> qui prend un argument :
- Une HashMap nommée
<strong>products</strong>où :- Les clés représentent les noms des produits (
String). - Les valeurs représentent les prix (
Double).
- Les clés représentent les noms des produits (
Opérations à effectuer
- Trouvez le produit avec le prix le plus élevé.
- Si plusieurs produits ont le même prix le plus élevé, retournez l'un d'eux.
- Si la HashMap est vide, retournez une chaîne vide (
"").
- Filtrez les produits qui ont un prix supérieur à
<strong>50.00</strong>et stockez-les dans une nouvelle HashMap. - Calculez le prix moyen de tous les produits.
- Si la HashMap est vide, la moyenne doit être
0.0.
- Si la HashMap est vide, la moyenne doit être
Format de retour
La méthode doit retourner une nouvelle HashMap avec les paires clé-valeur suivantes :
| Clé | Valeur |
|---|---|
"Highest" | Le nom du produit avec le prix le plus élevé (String). |
"Filtered" | Une HashMap (HashMap<String, Double>) contenant uniquement les produits avec des prix supérieurs à 50.00. |
"Average" | Le prix moyen de tous les produits (Double). |
Essayez vous-même
import java.util.LinkedHashMap;
import java.util.HashMap;
import java.util.stream.Collectors;
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
public class Main {
public static HashMap<String, Object> processHashMap(HashMap<String, Double> products) {
// Écrivez votre code ici
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String productsString = scanner.nextLine();
// Convertir la chaîne JSON en HashMap
Type mapType = new TypeToken<HashMap<String, Double>>(){}.getType();
HashMap<String, Double> products = new Gson().fromJson(productsString, mapType);
HashMap<String, Object> result = processHashMap(products);
// Trier la map Filtered pour assurer une sortie cohérente
Map<String, Double> filteredMap = (Map<String, Double>) result.get("Filtered");
if (filteredMap != null && !filteredMap.isEmpty()) {
Map<String, Double> sortedFiltered = filteredMap.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(a, b) -> b,
LinkedHashMap::new
));
result.put("Filtered", sortedFiltered);
}
System.out.println(result);
}
}Toutes les leçons de Logique & Flux
1Tableaux multidimensionnels
Bases des tableaux 2DAccès aux éléments des tableaux 2DBoucles imbriquées avec les tableaux 2DRécapitulatif - Tableaux 2DAddition et soustraction de matricesTableaux irréguliersTableaux 3D et au-delàMotifs courants des tableaux 2DRécapitulatif - Tout sur les tableaux4HashSet Partie 1
Qu'est-ce qu'un HashSet ?Ajouter un ÉlémentSupprimer un ÉlémentVérifier si un Élément ExisteVide et TailleVider et ClonerRécapitulatif - HashSet7Gestion des erreurs de base
Bases du try-catchBloc finallyLever des exceptionsExceptions personnalisées2HashMap Partie 1
Qu'est-ce qu'une HashMap ?Déclarer une HashMapAccéder aux ValeursVérifier si une Clé ExisteModifier les DictionnairesRécapitulatif - HashMap3HashMap Partie 2
Méthodes HashMapItérer avec keySet()Itérer avec entrySet()HashMap imbriquéRécapitulatif - Gérer l'entrepôtRécapitulatif - Opérations HashMap6Flux de contrôle avancé
Instructions étiquetéesExpression switchAppariement de motifsClauses de gardeRécapitulatif - Flux de contrôle9Projet - Compteur de Mots Uniques
Entrée de Texte et StockageTraitement des Mots