כיצד ליישם ממשק מפות בג'אווה?



מאמר זה על Java Map Inteface יעזור לך להבין כיצד Map עובד ב- Java ומציג בפניך מחלקות שונות המיישמות ממשק Map

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

להלן רשימת הנושאים הניתנים במאמר זה:





ממשק מפת ג'אווה

מפה בג'אווה היא לְהִתְנַגֵד הממפה מפתחות לערכים ומיועד לחיפושים מהירים יותר. הנתונים נשמרים בזוגות ערך מפתח וכל מפתח הוא ייחודי. כל מפתח ממפה לערך ומכאן מפת השמות. צמדי ערך מפתח אלה נקראים ערכי מפות.

מפות בג



בתוך ה , java.util.Map הוא הכוללת חתימות שיטות להכנסה, הסרה ואחזור של אלמנטים על בסיס מפתח. בשיטות כאלה, זהו כלי מושלם לשימוש למיפוי שיוך ערך מפתח כגון מילונים.

מאפייני ממשק מפות

  • ממשק המפה אינו סוג משנה אמיתי של ממשק האוסף, ולכן,מאפייניו והתנהגויותיו שונים משאר סוגי האוספים.
  • זה מספקשלוש תצוגות אוסף - סט מפתחות, סט מיפוי ערכי מפתח ואוסף ערכים.
  • למַפָּהלא יכול להכיל מפתחות כפולים וכל מפתח יכול למפות לכל היותר ערך אחד. יישומים מסוימים מאפשרים מפתח null וערך null ( HashMap ו- LinkedHashMap ) אבל חלקם לא ( TreeMap).
  • ממשק Map אינו מבטיח את סדר המיפויים, אולם זה תלוי ביישום. לדוגמה, מפת גיבוב לא מבטיח את סדר המיפוי אבל TreeMap עושה.
  • מחלקת AbstractMap מספקת יישום שלדי של ממשק Java Map ורוב בטון המפה שיעורים הרחב את שיעור AbstractMap ויישם שיטות נדרשות.

עכשיו שיש לך מושג במה ממשק Map כלומר, בואו נלך לבדוק את ההיררכיה של Java Map.

היררכיית מפות ג'אווה

ישנם שני ממשקים המיישמים את המפה ב- Java: Map ו- SortedMap. ושיעורי יישום פופולריים של Map ב- Java הם HashMap, TreeMap , ו LinkedHashMap. ההיררכיה של מפת ג'אווה מובאת להלן:



מה הפירוש של __init__ בתשחץ

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

שיטות בממשק Java Map

שיטות

תיאור

הצעה ציבורית (מפתח אובייקט, ערך אובייקט)שיטה זו מכניסה ערך למפה
פּוּמְבֵּיvoid putAll (מפת המפה)שיטה זו מכניסה את המפה שצוינה במפה זו
הסר אובייקט ציבורי (מפתח אובייקט)הוא משמש למחיקת ערך עבור המפתח שצוין
הגדר את מפתח keySet ()הוא מחזיר את תצוגת הגדר המכילה את כל המקשים
ציבורי הגדר entrySet ()הוא מחזיר את תצוגת Set המכילה את כל המקשים והערכים
בטל ברור ()הוא משמש לאיפוס המפה
public void putIfAbsent (מקש K, ערך V)הוא מכניס את הערך שצוין עם המפתח שצוין במפה רק אם הוא לא צוין כבר
אובייקט ציבורי לקבל (מפתח אובייקט)הוא מחזיר את הערך עבור המפתח שצוין
public boolean containKey (מפתח אובייקט)
הוא משמש לחיפוש המפתח שצוין ממפה זו

יישומי מפה

יש כמה שמיישמים את מפת ג'אווהאך שלוש יישומים עיקריים וכלליים הםHashMap, TreeMap ו- LinkedHashMap.בואו נראה את המאפיינים וההתנהגויות של כל יישום בדוגמה

כיתת HashMap

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

חבילה MyPackage ייבא java.util. * class HashMapExample {public static void main (String [] args) {Map courses = new HashMap () // הוסף כמה קורסים. courses.put ('קורסים ב- Java', מספר שלם חדש (6)) קורסים .put ('קורסים בענן', מספר שלם חדש (7)) קורסים .put ('קורסים לתכנות', מספר שלם חדש (5)) קורסים.put (' קורסים למדעי נתונים ', מספר שלם חדש (2)) System.out.println (' סה'כ קורסים: '+ קורסים.גודל ()) סטst = courses.entrySet () עבור (Map.Enry me: st) {System.out.print (me.getKey () + ':') System.out.println (me.getValue ())} System.out. println () מחרוזת searchKey = 'קורסים ב- Java' אם (courses.containsKey (searchKey)) System.out.println ('נמצא סך הכל' + courses.get (searchKey) + '' + searchKey)}}

תְפוּקָה

סה'כ קורסים: 4 קורסים בענן: 7 קורסי תכנות: 5 קורסים במדעי הנתונים: 2 קורסי Java: 6 נמצאו בסך הכל 6 קורסי Java

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

בואו נעבור למחלקה הבאה שמיישמת את ממשק Java Map - TreeMap.

כיתת TreeMap

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

חבילה MyPackage ייבוא ​​java.util. * class TreeMapEx {public static void main (String [] args) {Map courses = new TreeMap () // הוסף כמה קורסים. courses.put ('קורסים ב- Java', מספר שלם חדש (3)) קורסים.put ('קורסים של AWS', מספר שלם חדש (7)) קורסים.put ('קורסים לתכנות', מספר שלם חדש (8)) קורסים.put (' קורסים למדעי נתונים ', מספר שלם חדש (2)) System.out.println (' סה'כ קורסים: '+ קורסים.גודל ()) סטst = courses.entrySet () עבור (Map.Enry me: st) {System.out.print (me.getKey () + ':') System.out.println (me.getValue ())} System.out. println ()}}

תְפוּקָה

סה'כ קורסים: 4 קורסי AWS: 7 קורסים למדעי נתונים: 2 קורסי Java: 3 קורסי תכנות: 8

בפלט, אלמנטים של המפה מודפסים בסדר לקסיקוגרפי קפדני, שאינו מופיע בדוגמאות הקודמות של HashMap. השיעור הבא עליו נדבר הוא LinkedHashMap .

כיתה LinkedHashMap

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

חבילה MyPackage לייבא java.util. * מחלקה ציבורית LinkedHashMap דוגמה {public static void main (String a []) {LinkedHashMap courses = new LinkedHashMap () courses.put ('Java Courses', Integer new (3)) courses.put (' קורסים בענן ', קורסים שלמים חדשים (7)). פלט (' קורסים מתכנתים ', מספרים שלמים חדשים (8)) קורסים. קורס (' קורסים במדעי נתונים ', מספר שלם חדש (2)) // הוא מדפיס את האלמנטים באותו סדר / / כפי שהם הוכנסו System.out.println (קורסים) System.out.println ('סה'כ קורסים:' + קורסים. גודל ()) System.out.println ('מכיל מפתח' Hadoop '?' + קורסים. containsKey ('Hadoop')) System.out.println ('קבלת ערך למפתח' קורסים לתכנות ':' + courses.get ('Courses Programming')) System.out.println ('האם המפה ריקה?' + Courses.isEmpty ()) System.out.println ('מחק אלמנט' קורסים בענן ':' + courses.remove ('Cloud Courses')) System.out.println (קורסים)}}

תְפוּקָה

{קורסים בג'אווה = 3, קורסים בענן = 7, קורסים בתכנות = 8, קורסים במדעי נתונים = 2} סה'כ קורסים: 4 מכיל את המפתח 'Hadoop'? false קבלת ערך למפתח 'קורסים בתכנות': 8 האם המפה ריקה? אלמנט מחיקת שווא 'קורסים בענן': 7 {קורסים בג'אווה = 3, קורסים בתכנות = 8, קורסים במדעי הנתונים = 2}

תוכנית הדוגמה די פשוטה להבנה. השתמשתי בכמה שיטות בסיסיות כדי להדגים את התפקוד של LinkeHashMap בג'אווה. כמו שאמרתי קודם שם חוץ משלושת אלה יש הרבה שיעורים אחרים המיישמים ממשק Java Map.

זה מביא אותנו לסוף מאמר זה 'ממשק מפת ג'אווה'. סקרתי את אחד הנושאים המעניינים של Java, שהוא ממשק Map ב- Java.

דאג שתתאמן ככל האפשר ותחזיר את החוויה שלך.

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

יש לך שאלה עבורנו? אנא הזכיר זאת בקטע ההערות של 'ממשק מפת java' זה מאמר ונחזור אליך בהקדם האפשרי.