סיכום – פעולות HashMap
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Java של Coddy. שיעור 21 מתוך 59.
אתגר
קליש ליצור מתודה בשם processHashMap שמקבלת ארגומנט אחד:
- HashMap בשם
productsשבו:- המפתחות מייצגים שמות של מוצרים (
String). - הערכים מייצגים מחירים (
Double).
- המפתחות מייצגים שמות של מוצרים (
הפעולות שיש לבצע
- יש למצוא את המוצר עם המחיר הגבוה ביותר.
- אם לכמה מוצרים יש אותו מחיר גבוה ביותר, יש להחזיר אחד מהם.
- אם ה-HashMap ריק, יש להחזיר מחרוזת ריקה (
"").
- יש לסנן מוצרים שמחירם גבוה מ-
50.00ולאחסן אותם ב-HashMap חדש. - יש לחשב את המחיר הממוצע של כל המוצרים.
- אם ה-HashMap ריק, הממוצע צריך להיות
0.0.
- אם ה-HashMap ריק, הממוצע צריך להיות
פורמט ההחזרה
המתודה צריכה להחזיר HashMap חדש עם זוגות המפתח-ערך הבאים:
| מפתח | ערך |
|---|---|
"Highest" | שם המוצר עם המחיר הגבוה ביותר (String). |
"Filtered" | HashMap (HashMap<String, Double>) שמכיל רק מוצרים שמחירם גבוה מ-50.00. |
"Average" | המחיר הממוצע של כל המוצרים (Double). |
נסו בעצמכם
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) {
// כתבו כאן את הקוד שלכם
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String productsString = scanner.nextLine();
// המירו את מחרוזת ה-JSON ל-HashMap
Type mapType = new TypeToken<HashMap<String, Double>>(){}.getType();
HashMap<String, Double> products = new Gson().fromJson(productsString, mapType);
HashMap<String, Object> result = processHashMap(products);
// מיינו את המפה Filtered כדי להבטיח פלט עקבי
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);
}
}כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מערכים רב־ממדיים
יסודות מערכים דו־ממדייםגישה לאיברים במערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםסיכום — מערכים דו־ממדייםחיבור וחיסור מטריצותמערכים מדורגיםמערכים תלת־ממדיים ומעבר להםתבניות נפוצות במערכים דו־ממדייםסיכום — כל מה שצריך לדעת על מערכים3HashMap חלק 2
מתודות של HashMapמעבר באמצעות keySet()מעבר באמצעות entrySet()HashMap מקונןסיכום – ניהול מחסןסיכום – פעולות HashMapתרגלו בעצמכם: קומפיילר Java אונליין