تطبق فئة Java Hashtable جدول تجزئة، والذي يعين المفاتيح للقيم. يرث فئة القاموس وينفذ واجهة الخريطة.
نقطة لنتذكر
- Hashtable عبارة عن مجموعة من القائمة. تُعرف كل قائمة بالدلو. يتم تحديد موضع الجرافة عن طريق استدعاء طريقة hashcode (). يحتوي Hashtable على قيم بناءً على المفتاح.
- تحتوي فئة Java Hashtable على عناصر فريدة.
- لا تسمح فئة Java Hashtable بالمفتاح أو القيمة الفارغة.
- تتم مزامنة فئة Java Hashtable.
- السعة الافتراضية الأولية لفئة Hashtable هي 11 بينما تبلغ قيمة عامل التحميل 0.75.
إعلان فئة Hashtable
دعونا نرى إعلان فئة java.util.Hashtable.
public class Hashtable extends Dictionary implements Map, Cloneable, Serializable
معلمات فئة Hashtable
دعونا نرى المعلمات لفئة java.util.Hashtable.
منشئو فئة Java Hashtable
البناء | وصف |
---|---|
جدول التجزئة () | يقوم بإنشاء جدول تجزئة فارغ له السعة الافتراضية الأولية وعامل التحميل. |
جدول التجزئة (سعة int) | يقبل معلمة عدد صحيح ويقوم بإنشاء جدول تجزئة يحتوي على سعة أولية محددة. |
جدول التجزئة (سعة int، عامل التحميل العائم) | يتم استخدامه لإنشاء جدول تجزئة له السعة الأولية المحددة وعامل التحميل. |
جدول التجزئة(الخريطة t) | يقوم بإنشاء جدول تجزئة جديد بنفس التعيينات الموجودة في الخريطة المحددة. |
طرق فئة Java Hashtable
طريقة | وصف |
---|---|
باطل واضح () | يتم استخدامه لإعادة ضبط جدول التجزئة. |
استنساخ الكائن () | تقوم بإرجاع نسخة ضحلة من Hashtable. |
حساب V (مفتاح K، وظيفة إعادة تعيين BiFunction) | يتم استخدامه لحساب تعيين للمفتاح المحدد وقيمته المعينة الحالية (أو فارغة إذا لم يكن هناك تعيين حالي). |
V computeIfAbsent (مفتاح K، وظيفة تعيين الوظائف) | يتم استخدامه لحساب قيمته باستخدام وظيفة التعيين المحددة، إذا لم يكن المفتاح المحدد مرتبطًا بالفعل بقيمة (أو تم تعيينه على قيمة فارغة)، ويدخله في هذه الخريطة ما لم يكن فارغًا. |
V computeIfPresent (مفتاح K، وظيفة إعادة تعيين BiFunction) | يتم استخدامه لحساب تعيين جديد بالنظر إلى المفتاح وقيمته المعينة الحالية إذا كانت قيمة المفتاح المحدد موجودة وغير فارغة. |
عناصر التعداد() | تقوم بإرجاع تعداد القيم في جدول التجزئة. |
تعيين | تقوم بإرجاع عرض محدد للتعيينات الموجودة في الخريطة. |
منطقية يساوي (كائن س) | يتم استخدامه لمقارنة الكائن المحدد بالخريطة. |
باطلة لكل (إجراء BiConsumer) | يقوم بتنفيذ الإجراء المحدد لكل إدخال في الخريطة حتى تتم معالجة جميع الإدخالات أو يطرح الإجراء استثناءً. |
V getOrDefault(مفتاح الكائن، V defaultValue) | تقوم بإرجاع القيمة التي تم تعيين المفتاح المحدد لها، أو القيمة الافتراضية إذا كانت الخريطة لا تحتوي على تعيين للمفتاح. |
رمز التجزئة الدولي () | تقوم بإرجاع قيمة رمز التجزئة للخريطة |
مفاتيح التعداد () | تقوم بإرجاع تعداد المفاتيح في جدول التجزئة. |
تعيين مجموعة المفاتيح () | تقوم بإرجاع عرض المجموعة للمفاتيح الموجودة في الخريطة. |
دمج V (مفتاح K، قيمة V، وظيفة إعادة تعيين BiFunction) | إذا لم يكن المفتاح المحدد مرتبطًا بالفعل بقيمة أو مرتبطًا بقيمة فارغة، فسيتم ربطه بالقيمة غير الخالية المحددة. |
وضع V (مفتاح K، قيمة V) | يقوم بإدراج القيمة المحددة بالمفتاح المحدد في جدول التجزئة. |
وضع الفراغ الكل (الخريطة ر)) | يتم استخدامه لنسخ كل زوج القيمة الرئيسية من الخريطة إلى جدول التجزئة. |
V putIfAbsent (مفتاح K، قيمة V) | إذا لم يكن المفتاح المحدد مرتبطًا بالفعل بقيمة (أو تم تعيينه إلى قيمة فارغة)، فإنه يربطه بالقيمة المحددة ويعيد قيمة فارغة، وإلا فسيتم إرجاع القيمة الحالية. |
إزالة منطقية (مفتاح الكائن، قيمة الكائن) | يقوم بإزالة القيم المحددة مع المفاتيح المحددة المرتبطة بها من جدول التجزئة. |
استبدال V (مفتاح K، قيمة V) | يستبدل القيمة المحددة لمفتاح محدد. |
استبدال منطقي (مفتاح K، V oldValue، V newValue) | يقوم باستبدال القيمة القديمة بالقيمة الجديدة لمفتاح محدد. |
استبدال باطلة الكل (وظيفة BiFunction) | فهو يستبدل قيمة كل إدخال بنتيجة استدعاء الوظيفة المحددة على هذا الإدخال حتى تتم معالجة جميع الإدخالات أو تقوم الوظيفة بطرح استثناء. |
سلسلة إلى سلسلة () | تقوم بإرجاع تمثيل سلسلة لكائن Hashtable. |
قيم المجموعة () | تقوم بإرجاع عرض مجموعة للقيم الموجودة في الخريطة. |
منطقي يحتوي على (قيمة الكائن) | تُرجع هذه الطريقة صحيحًا في حالة وجود قيمة مساوية للقيمة داخل جدول التجزئة، وإلا تُرجع خطأ. |
منطقية تحتوي على قيمة (قيمة الكائن) | تُرجع هذه الطريقة صحيحًا في حالة وجود قيمة مساوية للقيمة داخل جدول التجزئة، وإلا تُرجع خطأ. |
منطقي يحتوي على مفتاح (مفتاح الكائن) | تُرجع هذه الطريقة صحيحًا في حالة وجود مفتاح مساوٍ للمفتاح داخل جدول التجزئة، وإلا تُرجع خطأ. |
منطقي فارغ () | ترجع هذه الطريقة صحيحًا إذا كان جدول التجزئة فارغًا؛ تُرجع false إذا كانت تحتوي على مفتاح واحد على الأقل. |
إعادة صياغة الفراغ المحمي () | يتم استخدامه لزيادة حجم جدول التجزئة وإعادة صياغة جميع مفاتيحه. |
الحصول على V (مفتاح الكائن) | تقوم هذه الطريقة بإرجاع الكائن الذي يحتوي على القيمة المرتبطة بالمفتاح. |
إزالة V (مفتاح الكائن) | يتم استخدامه لإزالة المفتاح وقيمته. تقوم هذه الطريقة بإرجاع القيمة المرتبطة بالمفتاح. |
حجم صحيح () | تقوم هذه الطريقة بإرجاع عدد الإدخالات في جدول التجزئة. |
مثال جافا هاشتابل
import java.util.*; class Hashtable1{ public static void main(String args[]){ Hashtable hm=new Hashtable(); hm.put(100,'Amit'); hm.put(102,'Ravi'); hm.put(101,'Vijay'); hm.put(103,'Rahul'); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }اختبره الآن
انتاج:
103 Rahul 102 Ravi 101 Vijay 100 Amit
مثال Java Hashtable: إزالة ()
import java.util.*; public class Hashtable2 { public static void main(String args[]) { Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Before remove: '+ map); // Remove value for key 102 map.remove(102); System.out.println('After remove: '+ map); } }
انتاج:
Before remove: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} After remove: {103=Rahul, 101=Vijay, 100=Amit}
مثال Java Hashtable: getOrDefault()
import java.util.*; class Hashtable3{ public static void main(String args[]){ Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Here, we specify the if and else statement as arguments of the method System.out.println(map.getOrDefault(101, 'Not Found')); System.out.println(map.getOrDefault(105, 'Not Found')); } }
انتاج:
Vijay Not Found
مثال Java Hashtable: putIfAbsent()
import java.util.*; class Hashtable4{ public static void main(String args[]){ Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Initial Map: '+map); //Inserts, as the specified pair is unique map.putIfAbsent(104,'Gaurav'); System.out.println('Updated Map: '+map); //Returns the current value, as the specified pair already exist map.putIfAbsent(101,'Vijay'); System.out.println('Updated Map: '+map); } }
انتاج:
Initial Map: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} Updated Map: {104=Gaurav, 103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} Updated Map: {104=Gaurav, 103=Rahul, 102=Ravi, 101=Vijay, 100=Amit}
مثال Java Hashtable: Book
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class HashtableExample { public static void main(String[] args) { //Creating map of Books Map map=new Hashtable(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(1,b1); map.put(2,b2); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
انتاج:
3 Details: 103 Operating System Galvin Wiley 6 2 Details: 102 Data Communications & Networking Forouzan Mc Graw Hill 4 1 Details: 101 Let us C Yashwant Kanetkar BPB 8