English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java HashMap computeIfAbsent() يcalculate القيمة الجديدة، إذا لم يكن هناك أي قيمة مرتبطة بالمفتاح في خريطة التحويل، فإنه يتم ربطها بالمفتاح المحدد.
النص الناتج لطريقة computeIfAbsent()
hashmap.computeIfAbsent(K key, Function remappingFunction)
يملك طريقة computeIfAbsent() إثنين من المعلمات:
key - المفتاح المرتبط بالقيمة التي يتم حسابها
remappingFunction - للقيمة المحددةالمفتاحالوظيفة التي تcalculate الجديدة
النقطة الرئيسيةالنقطة الرئيسية: لا يمكن للوظيفة remapping function تقبيل إثنين من المعلمات.
القيمة الجديدة أو القديمة المرتبطة بالمفتاح المحدد
الوظيفة التي تcalculate الجديدة للقيمة المحددة
النقطة الرئيسيةالنقطة الرئيسية: إذا كان نتيجة remappingFunction غير null، فإنه سيتم حذف المفتاح المحددالمفتاحالتحويل.
import java.util.HashMap; class Main { public static void main(String[] args) { // إنشاء HashMap HashMap<String, Integer> prices = new HashMap<>(); // إدراج عنصر في HashMap prices.put("Shoes", 200); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); // حساب قيمة القميص int shirtPrice = prices.computeIfAbsent("Shirt", key -> 280); System.out.println("سعر القميص: " + shirtPrice); // طباعة تحديث HashMap System.out.println("HashMap بعد التحديث: " + prices); } }
نتائج الإخراج
HashMap: {Pant=150, Bag=300, Shoes=200} سعر القميص: 280 HashMap بعد التحديث: {Pant=150, Shirt=280, Bag=300, Shoes=200}
في المثال السابق، قمنا بإنشاء map يُدعى prices. لاحظ تعبير
prices.computeIfAbsent("Shirt", key -> 280)
في هذا السياق،
key -> 280 - هو تعبير lambda. يعود بـ 280. للحصول على معلومات إضافية حول تعبيرات lambda، يرجى زيارةJava التعبيرات Lambda.
prices.computeIfAbsent() - ُتوصيل القيمة الجديدة التي يعود بها تعبير lambda مع mapping لـShirt. هذا ممكن لأن Shirt لم يتم mapping له مع أي قيمة في hashmap.
import java.util.HashMap; class Main { public static void main(String[] args) { // إنشاء HashMap HashMap<String, Integer> prices = new HashMap<>(); // إدراج عنصر في HashMap prices.put("Shoes", 180); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("HashMap: " + prices); // المapping الخاص بـShoes موجود بالفعل // لا يتم حساب القيمة الجديدة لـShoes int shoePrice = prices.computeIfAbsent("Shoes", (key) -> 280); System.out.println("سعر الحذاء: " + shoePrice); // تحديث HashMap System.out.println("HashMap بعد التحديث: " + prices); } }
نتائج الإخراج
HashMap: {Pant=150, Bag=300, Shoes=180} سعر الأحذية: 180 HashMap بعد التحديث: {Pant=150, Bag=300, Shoes=180}
في الأمثلة أعلاه، تم إضافة映射 Shoes إلى المخطط البسيط. لذلك، لن يحسب computeIfAbsent() قيمة Shoes الجديدة.
اقرأ المزيد
HashMap compute() - حساب قيمة المفتاح المحدد
HashMap computeIfPresent() - إذا كان المفتاح المحدد قد تم تثبيته في قيمة، فحساب هذه القيمة
Java HashMap merge() - تنفيذ نفس المهمة مثل compute()