English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمات Java الأساسية

تحكم Java في العملية

مجموعات Java Array

Java Object-Oriented (I)

Java Object-Oriented (II)

Java Object-Oriented (III)

معالجة الاستثناءات في Java

قائمة Java List

Java Queue (الصف)

مجموعات Java Map

مجموعات Java Set

إدخال/خروج Java (I/O)

قراء/كتابة Java

مواضيع أخرى لـ Java

استخدام computeIfAbsent() لـ Java HashMap و مثال

Java وسائل HashMap

Java HashMap computeIfAbsent() يcalculate القيمة الجديدة، إذا لم يكن هناك أي قيمة مرتبطة بالمفتاح في خريطة التحويل، فإنه يتم ربطها بالمفتاح المحدد.

النص الناتج لطريقة computeIfAbsent()

hashmap.computeIfAbsent(K key, Function remappingFunction)

معلمات computeIfAbsent()

يملك طريقة computeIfAbsent() إثنين من المعلمات:

  • key - المفتاح المرتبط بالقيمة التي يتم حسابها

  • remappingFunction - للقيمة المحددةالمفتاحالوظيفة التي تcalculate الجديدة

النقطة الرئيسيةالنقطة الرئيسية: لا يمكن للوظيفة remapping function تقبيل إثنين من المعلمات.

القيمة التي يرجعها computeIfAbsent()

  • القيمة الجديدة أو القديمة المرتبطة بالمفتاح المحدد

  • الوظيفة التي تcalculate الجديدة للقيمة المحددة

النقطة الرئيسيةالنقطة الرئيسية: إذا كان نتيجة remappingFunction غير null، فإنه سيتم حذف المفتاح المحددالمفتاحالتحويل.

مثال 1: computeIfAbsent() لـ Java HashMap

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.

مثال 2: إذا كان المفتاح موجودًا بالفعل، استخدم computeIfAbsent()

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 الجديدة.

اقرأ المزيد

Java وسائل HashMap