English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
إذا كان المفتاح الموجود بالفعل في المفتاح البسيط، فإن طريقة computeIfPresent() في Java HashMap ستحسب قيمة جديدة وتربطها بالمفتاح المحدد.
جملة syntax للطريقة computeIfPresent()
حساب hashmap.computeIfPresent(K key, BiFunction remappingFunction)
يملك طريقة computeIfPresent() إثنين من المعلمات:
key - المفتاح المرتبط بقيمة الحساب
remappingFunction - لـالمفتاحالوظيفة التي تُحسب القيمة الجديدة
ملاحظة: يمكن لتابع remappingFunction استقبال إثنين من المعلمات.
إرجاع القيمة الجديدة المرتبطة بالمفتاح المحدد
إذا لم يكن هناك أي قيمة مرتبطة بالمفتاح، فإنه سيتم إرجاع null
ملاحظة: إذا كان نتيجة 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); // إعادة حساب قيمة الأحذية باستخدام ضريبة القيمة المضافة 10% int shoesPrice = prices.computeIfPresent("Shoes", (key, value) -> value + value * 10/100); System.out.println(\"سعر الأحذية بعد إضافة الضرائب على القيمة المضافة: \" + shoesPrice); // طباعة خريطة HashMap المعدلة System.out.println(\"خريطة HashMap بعد التحديث: \" + prices); } }
نتيجة الإخراج
HashMap: {Pant=150, Bag=300, Shoes=200} سعر الأحذية بعد إضافة الضرائب على القيمة المضافة: 220 خريطة HashMap بعد التحديث: {Pant=150, Bag=300, Shoes=220}
في هذا المثال، قمنا بإنشاء خريطة هاشة تُدعى prices. لاحظ التعبير
computesIfPresent(\"Shoes\", (key, value) -> value + value * 10/100)
هنا،
(key, value) -> value + value*10/100 - هي lambda expression. إنها calculate القيمة الجديدة لShoes وتعيد. للحصول على مزيد من المعلومات حول lambda expressions، يرجى زيارةJava تعبيرات Lambda.
prices.computeIfPresent() - يربط القيمة الجديدة التي يعود إليها lambda expression مع Shoes Mapping. هذا هو الشكل الوحيد، لأن Shoes مرتبط بالفعل بمفتاح في جدول الارتباط.
لا يمكن استخدام طريقة computeIfPresent() إذا لم تكن المفتاح موجودًا في جدول الارتباط.
اقرأ المزيد
HashMap compute() - calculate القيمة المحددة للملف
HashMap computeIfAbsent() - إذا لم يتم ربط أي قيمة بالملف الحالي، فإنها تcalculate القيمة
Java HashMap merge() - تنفيذ نفس المهمة مثل compute()