logo

Java HashMap

היררכיית מחלקות Java HashMap

Java מפת גיבוב class מיישמת את ממשק Map המאפשר לנו לאחסון מפתח וזוג ערכים , שבו מפתחות צריכים להיות ייחודיים. אם תנסה להכניס את המפתח הכפול, הוא יחליף את האלמנט של המפתח המתאים. קל לבצע פעולות באמצעות אינדקס המפתח כמו עדכון, מחיקה וכו'. מחלקה HashMap נמצאת ב-java.utilחֲבִילָה.

HashMap ב-Java היא כמו מחלקת ה-Hashtable מדור קודם, אך היא אינה מסונכרנת. זה מאפשר לנו לאחסן גם את הרכיבים null, אבל צריך להיות רק מפתח null אחד. מאז Java 5, הוא מסומן כמפת גיבוב, כאשר K מייצג מפתח ו-V עבור ערך. הוא יורש את המחלקה AbstractMap ומיישמת את ממשק המפה.

נקודות לזכור

  • Java HashMap מכיל ערכים המבוססים על המפתח.
  • Java HashMap מכיל מפתחות ייחודיים בלבד.
  • ל-Java HashMap עשוי להיות מפתח null אחד וערכי null מרובים.
  • Java HashMap אינו מסונכרן.
  • Java HashMap לא שומרת על סדר.
  • קיבולת ברירת המחדל הראשונית של מחלקת Java HashMap היא 16 עם מקדם עומס של 0.75.

היררכיה של מחלקה HashMap

כפי שמוצג באיור שלמעלה, מחלקת HashMap מרחיבה את מחלקת AbstractMap ומיישמת ממשק מפה.

הצהרת כיתה HashMap

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

פרוס ג'אווה
 public class HashMap extends AbstractMap implements Map, Cloneable, Serializable 

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

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

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

בונים של כיתת Java HashMap

בַּנַאִיתיאור
מפת גיבוב()הוא משמש לבניית HashMap ברירת מחדל.
HashMap(Map m)הוא משמש לאתחול מפת הגיבוב על ידי שימוש באלמנטים של אובייקט המפה הנתון m.
HashMap (קיבולת int)הוא משמש לאתחול הקיבולת של מפת הגיבוב לערך השלם הנתון, קיבולת.
HashMap (קיבולת int, float loadFactor)הוא משמש לאתחול הן את הקיבולת והן את גורם הטעינה של מפת הגיבוב באמצעות הארגומנטים שלה.

שיטות של כיתת Java HashMap

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

דוגמה של Java HashMap

בואו נראה דוגמה פשוטה של ​​HashMap לאחסון צמד מפתח וערך.

 import java.util.*; public class HashMapExample1{ public static void main(String args[]){ HashMap map=new HashMap();//Creating HashMap map.put(1,'Mango'); //Put elements in Map map.put(2,'Apple'); map.put(3,'Banana'); map.put(4,'Grapes'); System.out.println('Iterating Hashmap...'); for(Map.Entry m : map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
בדוק את זה עכשיו
 Iterating Hashmap... 1 Mango 2 Apple 3 Banana 4 Grapes 

בדוגמה זו, אנו מאחסנים מספר שלם כמפתח ומחרוזת כערך, ולכן אנו משתמשיםמפת גיבובבתור הסוג. הלָשִׂים()השיטה מכניסה את האלמנטים למפה.

כדי לקבל את רכיבי המפתח והערך, עלינו לקרוא למתודות getKey() ו-getValue(). המפה.כניסההממשק מכיל את להשיג מפתח() ו getValue() שיטות. אבל, עלינו לקרוא לשיטת entrySet() של ממשק Map כדי לקבל את המופע של Map.Entry.

אין מפתח שכפול ב- HashMap

לא ניתן לאחסן מפתחות כפולים ב- HashMap. עם זאת, אם תנסה לאחסן מפתח משוכפל עם ערך אחר, הוא יחליף את הערך.

 import java.util.*; public class HashMapExample2{ public static void main(String args[]){ HashMap map=new HashMap();//Creating HashMap map.put(1,'Mango'); //Put elements in Map map.put(2,'Apple'); map.put(3,'Banana'); map.put(1,'Grapes'); //trying duplicate key System.out.println('Iterating Hashmap...'); for(Map.Entry m : map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
בדוק את זה עכשיו
 Iterating Hashmap... 1 Grapes 2 Apple 3 Banana 

דוגמה של Java HashMap להוספת אלמנטים ()

כאן, אנו רואים דרכים שונות להכנסת אלמנטים.

 import java.util.*; class HashMap1{ public static void main(String args[]){ HashMap hm=new HashMap(); System.out.println('Initial list of elements: '+hm); hm.put(100,'Amit'); hm.put(101,'Vijay'); hm.put(102,'Rahul'); System.out.println('After invoking put() method '); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } hm.putIfAbsent(103, 'Gaurav'); System.out.println('After invoking putIfAbsent() method '); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } HashMap map=new HashMap(); map.put(104,'Ravi'); map.putAll(hm); System.out.println('After invoking putAll() method '); for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
 Initial list of elements: {} After invoking put() method 100 Amit 101 Vijay 102 Rahul After invoking putIfAbsent() method 100 Amit 101 Vijay 102 Rahul 103 Gaurav After invoking putAll() method 100 Amit 101 Vijay 102 Rahul 103 Gaurav 104 Ravi 

דוגמה של Java HashMap להסרת אלמנטים ()

כאן, אנו רואים דרכים שונות להסיר אלמנטים.

 import java.util.*; public class HashMap2 { public static void main(String args[]) { HashMap map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); map.put(103, 'Gaurav'); System.out.println('Initial list of elements: '+map); //key-based removal map.remove(100); System.out.println('Updated list of elements: '+map); //value-based removal map.remove(101); System.out.println('Updated list of elements: '+map); //key-value pair based removal map.remove(102, 'Rahul'); System.out.println('Updated list of elements: '+map); } } 

תְפוּקָה:

 Initial list of elements: {100=Amit, 101=Vijay, 102=Rahul, 103=Gaurav} Updated list of elements: {101=Vijay, 102=Rahul, 103=Gaurav} Updated list of elements: {102=Rahul, 103=Gaurav} Updated list of elements: {103=Gaurav} 

דוגמה של Java HashMap להחלפת אלמנטים ()

כאן אנו רואים דרכים שונות להחליף אלמנטים.

 import java.util.*; class HashMap3{ public static void main(String args[]){ HashMap hm=new HashMap(); hm.put(100,'Amit'); hm.put(101,'Vijay'); hm.put(102,'Rahul'); System.out.println('Initial list of elements:'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replace(102, 'Gaurav'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replace(101, 'Vijay', 'Ravi'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replaceAll((k,v) -> 'Ajay'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } } } 
 Initial list of elements: 100 Amit 101 Vijay 102 Rahul Updated list of elements: 100 Amit 101 Vijay 102 Gaurav Updated list of elements: 100 Amit 101 Ravi 102 Gaurav Updated list of elements: 100 Ajay 101 Ajay 102 Ajay 

ההבדל בין HashSet ל- HashMap

HashSet מכיל רק ערכים ואילו HashMap מכיל ערך (מפתח וערך).

Java HashMap דוגמה: ספר

 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 MapExample { public static void main(String[] args) { //Creating map of Books Map map=new HashMap(); //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); } } } 
בדוק את זה עכשיו

תְפוּקָה:

 1 Details: 101 Let us C Yashwant Kanetkar BPB 8 2 Details: 102 Data Communications and Networking Forouzan Mc Graw Hill 4 3 Details: 103 Operating System Galvin Wiley 6 

נושאים קשורים

כיצד לחזור על מפה ב-Java

כיצד למיין HashMap ב-Java

Load Factor ב- HashMap

עבודה של HashMap ב-Java | איך HashMap עובד

ההבדל בין HashMap ל-Hashtable

כיצד למיין HashMap לפי ערך

ההבדל בין HashSet ל- HashMap

ההבדל בין HashMap ל-TreeMap

ממשק מפת Java

נסה לתפוס ב-java