HashMap (או HashTable) הוא מבנה נתונים המאפשר גישה מהירה לנתונים באמצעות צמדי מפתח-ערך. מחלקת Java HashMap מרחיבה את מפה מופשטת class ומיישמת את ממשק Map, מה שנותן לו גישה להרבה פעולות. ל-HashMaps יש שני פרמטרים מסוג-K ו-V, כאשר K מאחסן את המפתחות ו-V מאחסן את הערכים בכל HashMap.

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

יצירת Java HashMap

למחלקת Java HashMap יש ארבעה בנאים. בנאי ברירת המחדל הוא הפופולרי ביותר, הוא מאפשר לך ליצור HashMap ריק שתהיה לו קיבולת ברירת מחדל של 16.

יְבוּאjava.util.מפת גיבוב;
פּוּמְבֵּימעמדרָאשִׁי{
פּוּמְבֵּיסטָטִיבָּטֵלרָאשִׁי(מחרוזת[] args){
//יצירת HashMap
מפת גיבוב<מספר שלם, מחרוזת> fruitsMap = HashMap חדש<מספר שלם, מחרוזת>();
}
}

ה שיעור Java לעיל משתמש בבנאי HashMap ברירת המחדל כדי ליצור מבנה נתונים בשם פירות מפת. האובייקט fruitsMap יאחסן נתונים שיש להם מפתח שלם וערך מחרוזת. עם זאת, מכיוון שמחלקת HashMap מיישמת את ממשק Map, היא יכולה לאחסן ערך null בשדה המפתח, בשדה הערך או בשניהם.

instagram viewer

אחסון נתונים ב-HashMap

ניתן לבצע מספר פעולות באמצעות מחלקת HashMap. ה לשים (מפתח K, ערך V) השיטה היא בין השיטות הפופולריות ביותר שלה, והיא מאפשרת לך לאחסן נתונים באמצעות צמד מפתח-ערך, כאשר כל מפתח ממפה לערך.

יְבוּאjava.util.מפת גיבוב;
פּוּמְבֵּימעמדרָאשִׁי{
פּוּמְבֵּיסטָטִיבָּטֵלרָאשִׁי(מחרוזת[] args){
//יצירת HashMap
מפת גיבוב<מספר שלם, מחרוזת> fruitsMap = HashMap חדש<מספר שלם, מחרוזת>();
//הוסף פריטים ל-HashMap
fruitsMap.put (3,"אגס");
fruitsMap.put (6,"מנגו");
fruitsMap.put (7,"שזיף");
fruitsMap.put (4,"תפוח עץ");
fruitsMap.put (1,"תפוז");
fruitsMap.put (5,"פירות יער");
fruitsMap.put (2,"מֵלוֹן");
}
}

המחלקה המעודכנת למעלה משתמשת בשיטת put() כדי להוסיף מספר פירות והמפתח שלהם למבנה הנתונים הקיים של fruitsMap. חשוב לציין שהקוד למעלה מוסיף את הנתונים למפה באופן אקראי. פרט זה יהיה שימושי כאשר תתחיל לקרוא את הנתונים מ-HashMap.

קריאת נתונים מתוך HashMap

ישנן מספר דרכים לקרוא נתונים מ- HashMap. השיטה שבה אתה משתמש תלויה באופן שבו אתה רוצה שהנתונים ייראו או אפילו בסוג הנתונים שאתה רוצה לאחזר.

אחזר את אובייקט HashMap

אם אתה רוצה לאחזר את הנתונים כאובייקט, אתה יכול פשוט לגשת לאובייקט HashMap, שבדוגמה למטה הוא fruitsMap.

//הצג את כל הפריטים כאובייקט
מערכת.הַחוּצָה.println(פירות מפת);

הוספת שורת הקוד למעלה למחלקה Main, מדפיסה את הפלט הבא במסוף:

{1=תפוז, 2=מלון, 3=אגס, 4=תפוח, 5=גרגרים, 6=מנגו, 7=שזיף}

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

אחזר את כל הנתונים בנפרד

אם אתה רוצה לאחזר את כל הנתונים בנפרד, אתה יכול להשתמש ב- ל שיטה המאפשרת לך לעבור דרך HashMap ולהדפיס כל ערך והמפתח המתאים לו. שיטה זו משתמשת בממשק Map שמחלקת HashMap מיישמת.

//הצג את כל הפריטים עם איטרטור 
עבור (HashMap. כְּנִיסָה<מספר שלם, מחרוזת> fruit: fruitsMap.entrySet())
{
System.out.println("מַפְתֵחַ: " + fruit.getKey() + " ערך: " + fruit.getValue());
}

הוספת השיטה לעיל לקוד שלך תדפיס את הפלט הבא במסוף שלך:

מפתח: 1 ערך: כתום
מפתח: 2 ערך: מלון
מפתח: 3 ערך: אגס
מפתח: 4 ערך: אפל
מפתח: 5 ערך: פירות יער
מפתח: 6 ערך: מנגו
מפתח: 7 ערך: שזיף

אחזר ערך ספציפי

לכיתה HashMap יש א לקבל() שיטה שלוקחת מפתח ומחזירה את הערך שמופה למפתח זה.

// להביא פריט בודד
מערכת.הַחוּצָה.println(פירות מפת.לקבל(4));

שורת הקוד למעלה מדפיסה את הפלט הבא במסוף:

תפוח עץ

עדכון נתונים ב-HashMap

לאחר שתיצור ותאכלס אובייקט HashMap, תוכל להשתמש ב- החלף() שיטה לעדכון כל פריט במפה. המתודה replace() לוקחת שניים או שלושה ארגומנטים. השיטה הראשונה replace() לוקחת את המפתח המשויך לפריט קיים, יחד עם הערך החדש שברצונך למפות אליו.

// להחליף פריט בודד
fruitsMap.replace (4, "ענבים");
מערכת.הַחוּצָה.הדפס(פירות מפת);

ביצוע הקוד שלמעלה מדפיס את האובייקט הבא במסוף:

{1=תפוז, 2=מלון, 3=אגס, 4=ענבים, 5=גרגרים, 6=מנגו, 7=שזיף}

כפי שניתן לראות מהאובייקט שלמעלה, "ענבים" ממפה ל-4, שמופו בעבר ל"אפל".

השיטה השנייה replace() לוקחת את המפתח המשויך לפריט הקיים, את הפריט הקיים ואת ערך ההחלפה.

// להחליף פריט בודד
fruitsMap.replace (4, "תפוח עץ", "ענבים");
מערכת.הַחוּצָה.הדפס(פירות מפת);

הקוד למעלה מדפיס את האובייקט הבא במסוף:

{1=תפוז, 2=מלון, 3=אגס, 4=ענבים, 5=גרגרים, 6=מנגו, 7=שזיף}

מחיקת נתונים מ- HashMap

אתה יכול למחוק פריט ספציפי מה-HashMap שלך באמצעות ה- לְהַסִיר() שיטה או מחק את כל הנתונים באמצעות ברור() שיטה. המתודה remove() לוקחת ארגומנט אחד או שניים. שיטת ההסרה הראשונה לוקחת את המפתח המשויך לערך שברצונך להסיר:

//מחק פריט בודד
פירות מפת.לְהַסִיר(5);
מערכת.הַחוּצָה.println(פירות מפת);

הקוד למעלה מדפיס את האובייקט הבא במסוף:

{1=תפוז, 2=מלון, 3=אגס, 4=תפוח, 6=מנגו, 7=שזיף}

האובייקט המעודכן מראה שהפריט עם צמד המפתח-ערך של 5 ו-"Berries" כבר אינו חלק ממפת fruits. שיטת remove() השנייה לוקחת מפתח ואת הערך שאליו היא ממופה.

//מחק פריט בודד
fruitsMap.remove (5, "פירות יער");
מערכת.הַחוּצָה.println(פירות מפת);

הקוד למעלה מדפיס גם את האובייקט הבא במסוף:

{1=תפוז, 2=מלון, 3=אגס, 4=תפוח, 6=מנגו, 7=שזיף}

המתודה clear() אינה לוקחת ארגומנטים ומחזירה void.

פירות מפת.ברור();
מערכת.הַחוּצָה.println(פירות מפת);

ביצוע הקוד שלמעלה מדפיס את האובייקט הריק הבא במסוף:

{}

עכשיו אתה יכול לבצע פעולות CRUD על Java HashMap

HashMaps הם אחד מכמה מבני נתונים פופולריים שאתה צריך לדעת. מאמר זה מלמד אותך כיצד לבצע פעולות CRUD על Java HashMaps. HashMap הוא מבנה נתונים שימושי מאוד, נקודת המכירה העיקרית שלו היא שהוא אחד ממבני הנתונים היעילים ביותר, בשל מהירות הגישה שלו. עם זאת, הוא גם מאוד נוח לשימוש, מכיוון שהוא מאפשר אחסון אקראי.