مراجعة - عمليات HashMap
جزء من قسم المنطق وتدفق التنفيذ في رحلة Java على Coddy. الدرس 21 من 59.
التحدي
سهلأنشئ method باسم <strong>processHashMap</strong> يأخذ وسيطًا واحدًا:
- HashMap باسم
<strong>products</strong>حيث:- المفاتيح تمثل أسماء المنتجات (
String). - القيم تمثل الأسعار (
Double).
- المفاتيح تمثل أسماء المنتجات (
العمليات المطلوب تنفيذها
- اعثر على المنتج ذي السعر الأعلى.
- إذا كان لدى عدة منتجات السعر الأعلى نفسه، فأعد أيًّا منها.
- إذا كان HashMap فارغًا، فأعد سلسلة نصية فارغة (
"").
- صفِّ المنتجات التي يزيد سعرها عن
<strong>50.00</strong>وخزّنها في HashMap جديد. - احسب متوسط أسعار جميع المنتجات.
- إذا كان HashMap فارغًا، فيجب أن يكون المتوسط
0.0.
- إذا كان HashMap فارغًا، فيجب أن يكون المتوسط
تنسيق الإرجاع
يجب أن تُرجع method 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المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكمتدرّب بنفسك: مترجم Java عبر الإنترنت