الوصول إلى القيم
جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 12 من 59.
في HashMap، يرتبط كل مفتاح بقيمة. للوصول إلى قيمة، تستخدم طريقة get() وتقوم بتوفير المفتاح.
يقوم HashMap بعد ذلك بإرجاع القيمة المرتبطة بهذا المفتاح. إذا لم يكن المفتاح موجوداً في HashMap، فإن الطريقة get() تُرجع null.
إليك الصيغة الأساسية:
ValueType value = mapName.get(key);mapName: اسم الـHashMap.key: المفتاح الذي تريد استرداد القيمة المرتبطة به.ValueType: نوع بيانات القيمة.
على سبيل المثال، دعونا نحدد الـ HashMap أولاً:
HashMap<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);والآن لاسترجاع هذه القيم:
Integer aliceAge = ages.get("Alice");
// عمر أليس: 30
Integer charlieAge = ages.get("Charlie");
// عمر تشارلي: nullفي هذا المثال، نقوم باسترداد عمر Alice باستخدام المفتاح "Alice". وبما أن "Charlie" ليس مفتاحاً في الـ HashMap، فإن charlieAge هو null.
التحدي
سهلأنشئ دالة تسمى getCapital تأخذ وسيطين (arguments):
HashMapتسمىcapitalsحيث المفاتيح هي أسماء الدول (سلاسل نصية) والقيم هي أسماء العواصم (سلاسل نصية).- سلسلة نصية
countryتمثل اسم الدولة.
يجب أن تعيد الدالة العاصمة للدولة المعطاة من خلال الوصول إلى HashMap المسماة capitals. إذا لم يتم العثور على الدولة في HashMap، أعد "Not found".
ورقة مرجعية
لاسترداد قيمة من HashMap، استخدم التابع get() مع المفتاح. إذا لم يكن المفتاح موجوداً، فإنه يعيد null.
ValueType value = mapName.get(key);مثال:
HashMap<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
Integer aliceAge = ages.get("Alice"); // 30
Integer charlieAge = ages.get("Charlie"); // nullجرّب بنفسك
// --- وحدات لتحويل سلسلة نصية من hashmap إلى hashmap ---
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
// -----------------------------
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public static String getCapital(HashMap<String, String> capitals, String country) {
// اكتب الكود الخاص بك أدناه
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String hashMapString = scanner.nextLine();
String country = scanner.nextLine();
// تحويل السلسلة النصية لـ HashMap إلى HashMap
Type mapType = new TypeToken<HashMap<String, String>>(){}.getType();
HashMap<String, String> countryCapitals = new Gson().fromJson(hashMapString, mapType);
String result = getCapital(countryCapitals, country);
System.out.println(result);
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكم