logo

שיעור Java Hashtable

מחלקה Java Hashtable מיישמת טבל hashable, אשר ממפה מפתחות לערכים. הוא יורש את המחלקה Dictionary ומיישם את ממשק המפה.

נקודות לזכור

  • Hashtable הוא מערך של רשימה. כל רשימה ידועה בתור דלי. המיקום של הדלי מזוהה על ידי קריאה לשיטת hashcode() . Hashtable מכיל ערכים המבוססים על המפתח.
  • מחלקה Java Hashtable מכילה אלמנטים ייחודיים.
  • מחלקת Java Hashtable אינה מאפשרת מפתח או ערך null.
  • מחלקת Java Hashtable מסונכרנת.
  • קיבולת ברירת המחדל הראשונית של מחלקה Hashtable היא 11 ואילו loadFactor הוא 0.75.

הצהרת כיתה Hastable

בוא נראה את ההצהרה עבור מחלקה java.util.Hashtable.

 public class Hashtable extends Dictionary implements Map, Cloneable, Serializable 

פרמטרים של מחלקה Hashtable

בוא נראה את הפרמטרים עבור המחלקה java.util.Hashtable.

    ק: זה סוג המפתחות שמתוחזק על ידי המפה הזו.IN: זהו סוג הערכים הממופים.

בונים של כיתה Java Hashtable

בַּנַאִיתיאור
טבלת גיבוב()זה יוצר טבל hashable ריק בעל קיבולת ברירת המחדל הראשונית ופקטור הטעינה.
Hashtable (קיבולת אינטנסיבית)הוא מקבל פרמטר של מספר שלם ויוצר טבלת hash המכילה קיבולת התחלתית מוגדרת.
Hashtable (קיבולת int, float loadFactor)הוא משמש ליצירת טבלת hash בעלת הקיבולת הראשונית ו-loadFactor שצוינו.
Hashtable (מפה t)זה יוצר טבלת hash חדשה עם אותם מיפויים כמו המפה הנתונה.

שיטות של מחלקה Java Hashtable

שיטהתיאור
void clear()הוא משמש לאיפוס טבלת הגיבוב.
שיבוט אובייקט()זה מחזיר עותק רדוד של ה-Hashtable.
V compute (מפתח K, BiFunction remappingFunction)הוא משמש לחישוב מיפוי עבור המפתח שצוין והערך הממוף הנוכחי שלו (או null אם אין מיפוי נוכחי).
V computeIfAbsent(מפתח K, פונקציה מיפוי פונקציות)הוא משמש לחישוב הערך שלו באמצעות פונקציית המיפוי הנתונה, אם המפתח שצוין אינו משויך כבר לערך (או ממופה ל-null), ומכניס אותו למפה זו אלא אם כן null.
V computeIfPresent(מפתח K, BiFunction remappingFunction)הוא משמש לחישוב מיפוי חדש בהתחשב במפתח ובערך המופה הנוכחי שלו אם הערך עבור המפתח שצוין קיים ואינו ריק.
רכיבי ספירה()הוא מחזיר ספירה של הערכים בטבלת ה-hash.
מַעֲרֶכֶתentrySet()הוא מחזיר תצוגה מוגדרת של המיפויים הכלולים במפה.
בוליאני שווה (Object o)הוא משמש להשוואה בין האובייקט שצוין למפה.
void forEach (פעולה BiConsumer)הוא מבצע את הפעולה הנתונה עבור כל ערך במפה עד שכל הערכים עברו עיבוד או שהפעולה זורקת חריגה.
V getOrDefault(מפתח אובייקט, V defaultValue)הוא מחזיר את הערך שאליו ממופה המפתח שצוין, או defaultValue אם המפה לא מכילה מיפוי עבור המפתח.
int hashCode()הוא מחזיר את ערך קוד ה-hash עבור המפה
מפתחות ספירה()זה מחזיר ספירה של המפתחות ב-hashtable.
הגדר keySet()זה מחזיר תצוגת סט של המפתחות הכלולים במפה.
V מיזוג (מפתח K, ערך V, BiFunction remappingFunction)אם המפתח שצוין אינו משויך כבר לערך או משויך ל-null, שייך אותו לערך הנתון שאינו ריק.
V put (מפתח K, ערך V)הוא מוסיף את הערך שצוין עם המפתח שצוין בטבלת ה-hash.
void putAll(Map t))הוא משמש להעתקת כל צמד המפתח-ערך ממפה ל-hashtable.
V putIfAbsent(מפתח K, ערך V)אם המפתח שצוין לא משויך כבר לערך (או ממופה ל-null) משייך אותו לערך הנתון ומחזיר null, אחרת מחזיר את הערך הנוכחי.
הסר בוליאני (מפתח אובייקט, ערך אובייקט)זה מסיר את הערכים שצוינו עם המפתחות שצוינו המשויכים מה-hashtable.
V replace (מפתח K, ערך V)זה מחליף את הערך שצוין עבור מפתח שצוין.
החלפה בוליאני (מפתח K, V oldValue, V newValue)הוא מחליף את הערך הישן בערך החדש עבור מפתח שצוין.
void replaceAll (פונקציית BiFunction)זה מחליף את הערך של כל ערך בתוצאה של הפעלת הפונקציה הנתונה באותו ערך עד שכל הערכים עברו עיבוד או שהפונקציה זורקת חריגה.
String toString()הוא מחזיר ייצוג מחרוזת של אובייקט ה-Hashtable.
ערכי אוסף()הוא מחזיר תצוגת אוסף של הערכים הכלולים במפה.
בוליאני מכיל (ערך אובייקט)שיטה זו מחזירה true אם ערך כלשהו השווה לערך קיים בתוך טבלת ה-hash, אחרת תחזיר false.
Boolean containsValue(ערך אובייקט)שיטה זו מחזירה true אם ערך כלשהו השווה לערך קיים בתוך טבלת ה-hash, אחרת תחזיר false.
Boolean containsKey(מפתח אובייקט)שיטה זו מחזירה true אם מפתח השווה למפתח קיים בטבלת ה-hash, אחרת תחזיר false.
boolean is Empty()שיטה זו מחזירה true אם טבלת הגיבוב ריקה; מחזירה false אם היא מכילה מפתח אחד לפחות.
מוגן void rehash()הוא משמש להגדלת גודל טבלת הגיבוב ומשחזר את כל המפתחות שלו.
V get (מפתח אובייקט)שיטה זו מחזירה את האובייקט המכיל את הערך המשויך למפתח.
V להסיר (מפתח אובייקט)הוא משמש להסרת המפתח והערך שלו. שיטה זו מחזירה את הערך המשויך למפתח.
int size()שיטה זו מחזירה את מספר הערכים בטבלת הגיבוב.

דוגמה ל-Java Hashtable

 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: remove()

 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: ספר

 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