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