User Tools

Site Tools


java:jfc_intf_map

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
java:jfc_intf_map [2015/03/23 03:50]
gthanos [Μετατροπή του Map σε μορφή που να μπορείτε να το διατρέξετε]
java:jfc_intf_map [2021/05/28 06:01]
Line 1: Line 1:
-====== java.util.Map ====== 
- 
-Ένα αντικείμενο τύπου //[[http://docs.oracle.com/javase/7/docs/api/java/util/Map.Entry.html|Map.Entry]]// αντιστοιχεί "τιμές" σε "κλειδιά". Τόσο οι τιμές όσο και τα κλειδιά μπορεί να είναι οποιουδήποτε τύπου. Ο στόχος της συγκεκριμένης δομής είναι να μπορούμε έχοντας το κλειδί να λάβουμε την τιμή που αντιστοιχεί σε αυτό. Οι μέθοδοι του interface Map.Entry δίνονται στον παρακάτω πίνακα. 
-{{ :java:map-entry.png |}} 
- 
-Μία δομή τύπου Map είναι μία δομή που περιέχει εγγραφές τύπου //Map.Entry// με την ιδιαιτερότητα ότι δεν μπορεί να διαθέτει δύο εγγραφές με το ίδιο κλειδί (μπορεί όμως να διαθέτει δύο εγγραφές με διαφορετικά κλειδιά, αλλά ίδιες τιμές). 
- 
-Η java διατηρεί τρεις βασικές κλάσεις που υλοποιούν το //[[http://docs.oracle.com/javase/7/docs/api/java/util/Map.html|Map]]// interface, [[https://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html|HashMap]], [[https://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html|TreeMap]] και [[https://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html|LinkedHashMap]]. Για τα θετικά και τα αρνητικά στοιχεία της κάθε υλοποίησης ανατρέξτε στο interface [[java:jfc_intf_set|Set]] (οι υλοποιήσεις μεταξύ //Set// και //Map// είναι ανάλογες). 
- 
-Διαθέτει τις εξής μεθόδους που δεν διατίθενται στο interface //Collection// ή έχουν διαφορετική λειτουργία από τα interfaces που είδαμε μέχρι τώρα. 
-  * **[[http://docs.oracle.com/javase/7/docs/api/java/util/Map.html#containsKey(java.lang.Object)|containsKey(Object key)]] -** Επιστρέφει true αν η δομή περιέχει το συγκεκριμένο κλειδί 
-  * **[[http://docs.oracle.com/javase/7/docs/api/java/util/Map.html#containsValue(java.lang.Object)|containsValue(Object value)]] -** Επιστρέφει true αν η δομή περιέχει την συγκεκριμένη τιμή αντιστοιχισμένη με ένα ή περισσότερα κλειδιά. 
-  * **[[http://docs.oracle.com/javase/7/docs/api/java/util/Map.html#remove(java.lang.Object)|remove(Object key)]] -** Διαγράφει την εγγραφή που αντιστοιχεί στο κλειδί //key// επιστρέφοντας την τιμή V ή null αν δεν βρέθηκε το κλειδί. 
-  * **[[http://docs.oracle.com/javase/7/docs/api/java/util/Map.html#put(K,%20V)|put(K key, V value)]] -** A Διαγράφει την εγγραφή που αντιστοιχεί στο κλειδί //key// επιστρέφοντας την τιμή V ή null αν δεν υπήρχε προηγούμενη καταχώρηση για το συγκεκριμένο κλειδί. 
-  * **[[http://docs.oracle.com/javase/7/docs/api/java/util/Map.html#get(java.lang.Object)|get(Object key)]] -** Επιστρέφει την τιμή που αντιστοιχεί στο δεδομένο κλειδί ή null αν δεν υπάρχει καταχώρηση για το συγκεκριμένο κλειδί. 
- 
-==== Μετατροπή του Map σε μορφή που να μπορείτε να το διατρέξετε (Collection ή Set) ==== 
- 
-  * **[[http://docs.oracle.com/javase/7/docs/api/java/util/Map.html#entrySet()|entrySet()]] -** Επιστρέφει ένα //Set// από καταχωρήσεις τύπου //Entry.Map// όπου κάθε καταχώρηση περιέχει το συνδυασμό κλειδί-τιμή. 
-  * **[[http://docs.oracle.com/javase/7/docs/api/java/util/Map.html#values()|values()]] -** Επιστρέφει ένα //Collection// με τις τιμές του //Map// δίχως τα κλειδιά. Μία τιμή μπορεί να εμφανίζεται περισσότερες από μία φορές αν αντιστοιχεί σε περισσότερα του ενός κλειδιά. 
-  * **[[http://docs.oracle.com/javase/7/docs/api/java/util/Map.html#keySet()|keySet()]] -** Επιστρέφει ένα //Set// με τα κλειδιά. 
- 
-<code java StudentMap.java> 
-import java.util.*; 
-import java.lang.*; 
- 
-public class StudentMap { 
- 
-  private Map<Integer,Student> students; 
-   
-  public StudentMap() { 
-    students = new LinkedHashMap<Integer,Student>(); 
-    populateMap(); 
-  } 
-   
-  public final void populateMap() { 
-    students.put(1, new Student("John", "Smith")); 
-    students.put(2, new Student("Stanley", "Peters")); 
-    students.put(3, new Student("Edgar", "Bloch")); 
-    students.put(4, new Student("Suzan", "Miles")); 
-    students.put(5, new Student("Mary", "Poppins")); 
-  } 
-   
-  public void iterateMapEntries() {  
-    Set set = students.entrySet(); 
-    Iterator it = set.iterator(); 
-    while(it.hasNext()) { 
-      System.out.println(it.next().toString()); 
-    } 
-  } 
-   
-  public void iterateMapValues() {  
-    Collection col = students.values(); 
-    Iterator it = col.iterator(); 
-    while(it.hasNext()) { 
-      System.out.println(it.next().toString()); 
-    } 
-  } 
-   
-  public void iterateMapKeys() {  
-    Set set = students.keySet(); 
-    Iterator it = set.iterator(); 
-    while(it.hasNext()) { 
-      System.out.println(it.next().toString()); 
-    } 
-  } 
-   
-  public static void main(String args[]) { 
-    StudentMap stl = new StudentMap(); 
-    stl.iterateMapKeys(); 
-    stl.iterateMapValues(); 
-    stl.iterateMapEntries(); 
-  } 
-} 
-</code> 
- 
- 
- 
- 
- 
  
java/jfc_intf_map.txt · Last modified: 2021/05/28 06:01 (external edit)