Zusammenfassung - HashMap-Operationen
Teil des Abschnitts Logik & Ablauf der Java-Journey von Coddy. Lektion 21 von 59.
Aufgabe
EinfachErstelle eine Methode namens <strong>processHashMap</strong>, die ein Argument entgegennimmt:
- Eine HashMap namens
<strong>products</strong>mit:- Schlüsseln, die Produktnamen (
String) darstellen. - Werten, die Preise (
Double) darstellen.
- Schlüsseln, die Produktnamen (
Auszuführende Operationen
- Finde das Produkt mit dem höchsten Preis.
- Wenn mehrere Produkte denselben höchsten Preis haben, gib eines davon zurück.
- Wenn die HashMap leer ist, gib eine leere Zeichenkette (
"") zurück.
- Filtere Produkte mit einem Preis größer als
<strong>50.00</strong>und speichere sie in einer neuen HashMap. - Berechne den Durchschnittspreis aller Produkte.
- Wenn die HashMap leer ist, sollte der Durchschnitt
0.0sein.
- Wenn die HashMap leer ist, sollte der Durchschnitt
Rückgabeformat
Die Methode sollte eine neue HashMap mit den folgenden Schlüssel-Wert-Paaren zurückgeben:
| Schlüssel | Wert |
|---|---|
"Highest" | Der Name des Produkts mit dem höchsten Preis (String). |
"Filtered" | Eine HashMap (HashMap<String, Double>), die nur Produkte mit Preisen größer als 50.00 enthält. |
"Average" | Der Durchschnittspreis aller Produkte (Double). |
Probier es selbst
import java.util.LinkedHashMap;
import java.util.HashMap;
import java.util.Map;
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) {
// Schreibe deinen Code hier
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String productsString = scanner.nextLine();
// JSON-String in HashMap konvertieren
Type mapType = new TypeToken<HashMap<String, Double>>(){}.getType();
HashMap<String, Double> products = new Gson().fromJson(productsString, mapType);
HashMap<String, Object> result = processHashMap(products);
// Sortiere die Filtered-Map, um eine konsistente Ausgabe sicherzustellen
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);
}
}Alle Lektionen in Logik & Ablauf
1Mehrdimensionale Arrays
Grundlagen der 2D-ArraysZugriff auf 2D-Array-ElementeVerschachtelte Schleifen mit 2D-ArraysZusammenfassung - 2D-ArraysMatrixaddition & SubtraktionJagged Arrays3D-Arrays und darüber hinausGängige 2D-Array-MusterZusammenfassung - Alles über Arrays2HashMap Teil 1
Was ist eine HashMap?Eine HashMap deklarierenWerte abrufenPrüfen, ob ein Schlüssel existiertWörterbücher modifizierenZusammenfassung - HashMap3HashMap Teil 2
HashMap-MethodenMit keySet() iterierenMit entrySet() iterierenVerschachtelte HashMapZusammenfassung - Lager verwaltenZusammenfassung - HashMap-Operationen6Erweiterter Steuerungsfluss
Beschriftete AnweisungenSwitch-AusdruckMusterabgleichSchutzklauselnZusammenfassung - Steuerungsfluss9Projekt - Einzigartiger Wortzähler
Texteingabe und SpeicherungWortverarbeitungÜbe selbstständig: Online-Java-Compiler