logo

واجهة خريطة جافا

تحتوي الخريطة على قيم على أساس المفتاح، أي زوج المفتاح والقيمة. يُعرف كل زوج من المفاتيح والقيمة بأنه إدخال. تحتوي الخريطة على مفاتيح فريدة.

تكون الخريطة مفيدة إذا كان عليك البحث عن العناصر أو تحديثها أو حذفها على أساس المفتاح.

جافا خريطة التسلسل الهرمي

هناك واجهتان لتنفيذ Map في Java: Map وSortedMap، وثلاث فئات: HashMap وLinkedHashMap وTreeMap. التسلسل الهرمي لخريطة Java موضح أدناه:

جافا خريطة التسلسل الهرمي

لا تسمح الخريطة بمفاتيح مكررة، ولكن يمكن أن يكون لديك قيم مكررة. يسمح HashMap وLinkedHashMap بالمفاتيح والقيم الفارغة، لكن TreeMap لا يسمح بأي مفتاح أو قيمة فارغة.

لا يمكن اجتياز الخريطة، لذا تحتاج إلى تحويلها إلى مجموعة باستخدام مجموعة المفاتيح () أو مجموعة الإدخال () طريقة.

فصلوصف
خريطة التجزئة HashMap هو تطبيق للخريطة، لكنه لا يحافظ على أي ترتيب.
LinkedHashMapLinkedHashMap هو تطبيق Map. يرث فئة HashMap. يحافظ على ترتيب الإدراج.
خريطة الشجرة TreeMap هو تطبيق Map وSortedMap. ويحافظ على الترتيب التصاعدي.

طرق مفيدة لواجهة الخريطة

طريقةوصف
وضع V (مفتاح الكائن، قيمة الكائن)يتم استخدامه لإدراج إدخال في الخريطة.
باطلة putAll (خريطة الخريطة)يتم استخدامه لإدراج الخريطة المحددة في الخريطة.
V putIfAbsent (مفتاح K، قيمة V)يقوم بإدراج القيمة المحددة مع المفتاح المحدد في الخريطة فقط إذا لم يتم تحديدها بالفعل.
إزالة V (مفتاح الكائن)يتم استخدامه لحذف إدخال للمفتاح المحدد.
إزالة منطقية (مفتاح الكائن، قيمة الكائن)يقوم بإزالة القيم المحددة مع المفاتيح المحددة المرتبطة بها من الخريطة.
تعيين مجموعة المفاتيح ()تقوم بإرجاع طريقة العرض Set التي تحتوي على جميع المفاتيح.
تعيينمجموعة الإدخال ()تقوم بإرجاع طريقة العرض Set التي تحتوي على كافة المفاتيح والقيم.
باطل واضح ()يتم استخدامه لإعادة تعيين الخريطة.
حساب V (مفتاح K، وظيفة إعادة تعيين BiFunction)يتم استخدامه لحساب تعيين للمفتاح المحدد وقيمته المعينة الحالية (أو فارغة إذا لم يكن هناك تعيين حالي).
V computeIfAbsent (مفتاح K، وظيفة تعيين الوظائف)يتم استخدامه لحساب قيمته باستخدام وظيفة التعيين المحددة، إذا لم يكن المفتاح المحدد مرتبطًا بالفعل بقيمة (أو تم تعيينه على قيمة فارغة)، ويدخله في هذه الخريطة ما لم يكن فارغًا.
V computeIfPresent (مفتاح K، وظيفة إعادة تعيين BiFunction)يتم استخدامه لحساب تعيين جديد بالنظر إلى المفتاح وقيمته المعينة الحالية إذا كانت قيمة المفتاح المحدد موجودة وغير فارغة.
منطقية تحتوي على قيمة (قيمة الكائن)تُرجع هذه الطريقة صحيحًا في حالة وجود قيمة مساوية للقيمة داخل الخريطة، وإلا تُرجع خطأ.
منطقي يحتوي على مفتاح (مفتاح الكائن)تُرجع هذه الطريقة صحيحًا في حالة وجود مفتاح مساوٍ للمفتاح داخل الخريطة، وإلا فإنها تُرجع خطأ.
منطقية يساوي (كائن س)يتم استخدامه لمقارنة الكائن المحدد بالخريطة.
باطلة لكل (إجراء BiConsumer)يقوم بتنفيذ الإجراء المحدد لكل إدخال في الخريطة حتى تتم معالجة جميع الإدخالات أو يطرح الإجراء استثناءً.
الحصول على V (مفتاح الكائن)تقوم هذه الطريقة بإرجاع الكائن الذي يحتوي على القيمة المرتبطة بالمفتاح.
V getOrDefault(مفتاح الكائن، V defaultValue)تقوم بإرجاع القيمة التي تم تعيين المفتاح المحدد لها، أو القيمة الافتراضية إذا كانت الخريطة لا تحتوي على تعيين للمفتاح.
رمز التجزئة الدولي ()تقوم بإرجاع قيمة رمز التجزئة للخريطة
منطقي فارغ ()تُرجع هذه الطريقة صحيحًا إذا كانت الخريطة فارغة؛ تُرجع false إذا كانت تحتوي على مفتاح واحد على الأقل.
دمج V (مفتاح K، قيمة V، وظيفة إعادة تعيين BiFunction)إذا لم يكن المفتاح المحدد مرتبطًا بالفعل بقيمة أو مرتبطًا بقيمة فارغة، فسيتم ربطه بالقيمة غير الخالية المحددة.
استبدال V (مفتاح K، قيمة V)يستبدل القيمة المحددة لمفتاح محدد.
استبدال منطقي (مفتاح K، V oldValue، V newValue)يقوم باستبدال القيمة القديمة بالقيمة الجديدة لمفتاح محدد.
استبدال باطلة الكل (وظيفة BiFunction)فهو يستبدل قيمة كل إدخال بنتيجة استدعاء الوظيفة المحددة على هذا الإدخال حتى تتم معالجة جميع الإدخالات أو تقوم الوظيفة بطرح استثناء.
قيم المجموعة ()تقوم بإرجاع عرض مجموعة للقيم الموجودة في الخريطة.
حجم صحيح ()تقوم هذه الطريقة بإرجاع عدد الإدخالات في الخريطة.

Map.Entry واجهة

الإدخال هو الواجهة الفرعية للخريطة. لذلك سيتم الوصول إليه عن طريق اسم Map.Entry. تقوم بإرجاع عرض مجموعة للخريطة التي تنتمي عناصرها إلى هذه الفئة. ويوفر طرقًا للحصول على المفتاح والقيمة.

طرق واجهة Map.Entry

طريقةوصف
ك getKey()يتم استخدامه للحصول على المفتاح.
V getValue()يتم استخدامه للحصول على القيمة.
رمز التجزئة الدولي ()يتم استخدامه للحصول على hashCode.
V setValue(قيمة V)يتم استخدامه لاستبدال القيمة المقابلة لهذا الإدخال بالقيمة المحددة.
منطقية يساوي (كائن س)يتم استخدامه لمقارنة الكائن المحدد مع الكائنات الأخرى الموجودة.
ثابتةالمقارنةمقارنة حسب المفتاح ()تقوم بإرجاع مُقارن يقارن الكائنات بالترتيب الطبيعي على المفتاح.
المقارنة الساكنةالمقارنة حسب المفتاح (المقارنة cmp)تقوم بإرجاع مقارنة تقارن الكائنات حسب المفتاح باستخدام المقارنة المحددة.
ثابتةالمقارنةمقارنةByValue()تقوم بإرجاع مُقارن يقارن الكائنات بالترتيب الطبيعي حسب القيمة.
المقارنة الساكنةمقارنةByValue(المقارنة cmp)تقوم بإرجاع مقارن يقارن الكائنات حسب القيمة باستخدام المقارنة المحددة.

مثال لخريطة Java: غير عام (النمط القديم)

 //Non-generic import java.util.*; public class MapExample1 { public static void main(String[] args) { Map map=new HashMap(); //Adding elements to map map.put(1,'Amit'); map.put(5,'Rahul'); map.put(2,'Jai'); map.put(6,'Amit'); //Traversing Map Set set=map.entrySet();//Converting to Set so that we can traverse Iterator itr=set.iterator(); while(itr.hasNext()){ //Converting to Map.Entry so that we can get key and value separately Map.Entry entry=(Map.Entry)itr.next(); System.out.println(entry.getKey()+' '+entry.getValue()); } } } 

انتاج:

 1 Amit 2 Jai 5 Rahul 6 Amit 

مثال لخريطة Java: عام (نمط جديد)

 import java.util.*; class MapExample2{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Elements can traverse in any order for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 

انتاج:

 102 Rahul 100 Amit 101 Vijay 

مثال لخريطة جافا: CompareByKey()

 import java.util.*; class MapExample3{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey()) //Performs an action for each element of this stream .forEach(System.out::println); } } 

انتاج:

 100=Amit 101=Vijay 102=Rahul 

مثال على خريطة Java: CompareByKey() بترتيب تنازلي

 import java.util.*; class MapExample4{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } } 

انتاج:

 102=Rahul 101=Vijay 100=Amit 

مثال لخريطة جافا: CompareByValue()

 import java.util.*; class MapExample5{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue()) //Performs an action for each element of this stream .forEach(System.out::println); } } 

انتاج:

 100=Amit 102=Rahul 101=Vijay 

مثال لخريطة Java: CompareByValue() بترتيب تنازلي

 import java.util.*; class MapExample6{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } } 

انتاج:

 101=Vijay 102=Rahul 100=Amit