מפה מכילה ערכים על בסיס מפתח, כלומר מפתח וזוג ערכים. כל צמד מפתח וערכים ידוע בתור ערך. מפה מכילה מפתחות ייחודיים.
איזו שנה הומצא המחשב
מפה שימושית אם אתה צריך לחפש, לעדכן או למחוק אלמנטים על בסיס מפתח.
היררכיית מפות Java
ישנם שני ממשקים להטמעת Map ב-Java: Map ו- SortedMap, ושלוש מחלקות: HashMap, LinkedHashMap ו-TreeMap. ההיררכיה של מפת Java ניתנת להלן:
מפה אינה מאפשרת שכפול מפתחות, אבל אתה יכול לקבל ערכים כפולים. HashMap ו-LinkedHashMap מאפשרים מפתחות וערכים null, אבל TreeMap אינו מאפשר שום מפתח או ערך null.
לא ניתן לעבור מפה, אז אתה צריך להמיר אותה לסט באמצעות סט מפתחות() אוֹ entrySet() שיטה.
מעמד | תיאור |
---|---|
מפת גיבוב | HashMap הוא היישום של Map, אבל הוא לא שומר על שום סדר. |
LinkedHashMap | LinkedHashMap הוא היישום של Map. זה יורש את מחלקת HashMap. זה שומר על סדר ההכנסה. |
מפת עץ | TreeMap הוא היישום של Map ו- SortedMap. הוא שומר על סדר עולה. |
שיטות שימושיות של ממשק מפה
שיטה | תיאור |
---|---|
V put (מפתח אובייקט, ערך אובייקט) | הוא משמש להוספת ערך במפה. |
void putAll(מפת מפה) | הוא משמש להוספת המפה שצוינה במפה. |
V putIfAbsent(מפתח K, ערך V) | הוא מכניס את הערך שצוין עם המפתח שצוין במפה רק אם הוא לא צוין כבר. |
V להסיר (מפתח אובייקט) | הוא משמש למחיקת ערך עבור המפתח שצוין. |
הסר בוליאני (מפתח אובייקט, ערך אובייקט) | זה מסיר מהמפה את הערכים שצוינו עם המפתחות שצוינו. |
הגדר keySet() | זה מחזיר את תצוגת הסט המכילה את כל המפתחות. |
מַעֲרֶכֶת | זה מחזיר את תצוגת הסט המכילה את כל המפתחות והערכים. |
void clear() | הוא משמש לאיפוס המפה. |
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 אם המפה לא מכילה מיפוי עבור המפתח. |
int hashCode() | הוא מחזיר את ערך קוד ה-hash עבור המפה |
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() | שיטה זו מחזירה את מספר הערכים במפה. |
ממשק מפה.כניסה
כניסה היא ממשק המשנה של מפה. אז נקבל גישה אליו באמצעות שם Map.Entry. הוא מחזיר תצוגת אוסף של המפה, שהרכיבים שלה הם מהמחלקה הזו. הוא מספק שיטות לקבל מפתח וערך.
שיטות ממשק Map.Entry
שיטה | תיאור |
---|---|
K getKey() | הוא משמש להשגת מפתח. |
V getValue() | הוא משמש כדי להשיג ערך. |
int hashCode() | הוא משמש להשגת hashCode. |
V setValue(ערך V) | הוא משמש להחלפת הערך המתאים לערך זה בערך שצוין. |
בוליאני שווה (Object o) | הוא משמש להשוואה בין האובייקט שצוין לשאר האובייקטים הקיימים. |
סטָטִי | זה מחזיר משווה שמשווה את האובייקטים בסדר טבעי על המפתח. |
Comparator סטטי | זה מחזיר משווה שמשווה את האובייקטים לפי מפתח באמצעות המשווה הנתון. |
סטָטִי | זה מחזיר משווה שמשווה את האובייקטים בסדר טבעי לפי ערך. |
Comparator סטטי | זה מחזיר משווה שמשווה את האובייקטים לפי ערך באמצעות המשווה הנתון. |
דוגמה למפת Java: לא גנרית (סגנון ישן)
//Non-generic import java.util.*; public class MapExample1 { public static void main(String[] args) { Map map=new HashMap(); //Adding elements to map map.put(1,'Amit'); map.put(5,'Rahul'); map.put(2,'Jai'); map.put(6,'Amit'); //Traversing Map Set set=map.entrySet();//Converting to Set so that we can traverse Iterator itr=set.iterator(); while(itr.hasNext()){ //Converting to Map.Entry so that we can get key and value separately Map.Entry entry=(Map.Entry)itr.next(); System.out.println(entry.getKey()+' '+entry.getValue()); } } }
תְפוּקָה:
1 Amit 2 Jai 5 Rahul 6 Amit
דוגמה למפת Java: כללי (סגנון חדש)
import java.util.*; class MapExample2{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Elements can traverse in any order for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
תְפוּקָה:
102 Rahul 100 Amit 101 Vijay
דוגמה למפת Java: comparingByKey()
import java.util.*; class MapExample3{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey()) //Performs an action for each element of this stream .forEach(System.out::println); } }
תְפוּקָה:
100=Amit 101=Vijay 102=Rahul
דוגמה למפת Java: comparingByKey() בסדר יורד
import java.util.*; class MapExample4{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } }
תְפוּקָה:
102=Rahul 101=Vijay 100=Amit
דוגמה למפת Java: comparingByValue()
import java.util.*; class MapExample5{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue()) //Performs an action for each element of this stream .forEach(System.out::println); } }
תְפוּקָה:
קלט משתמש java
100=Amit 102=Rahul 101=Vijay
דוגמה למפת Java: comparingByValue() בסדר יורד
import java.util.*; class MapExample6{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } }
תְפוּקָה:
101=Vijay 102=Rahul 100=Amit