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/17 15:05]
gthanos [Μέθοδοι με πολλαπλές εγγραφές]
java:jfc_intf_map [2016/02/26 11:15] (current)
Line 6: Line 6:
 Μία δομή τύπου Map είναι μία δομή που περιέχει εγγραφές τύπου //​Map.Entry//​ με την ιδιαιτερότητα ότι δεν μπορεί να διαθέτει δύο εγγραφές με το ίδιο κλειδί (μπορεί όμως να διαθέτει δύο εγγραφές με διαφορετικά κλειδιά,​ αλλά ίδιες τιμές). Μία δομή τύπου 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]].+Η 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 που είδαμε μέχρι τώρα.+Διαθέτει τις εξής μεθόδους που δεν διατίθενται στο 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#​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#​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#​remove(java.lang.Object)|remove(Object key)]] -** Διαγράφει την εγγραφή που αντιστοιχεί στο κλειδί //key// επιστρέφοντας την τιμή V ή null αν δεν βρέθηκε το κλειδί.
-  * **[[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#​replace-K-V-|replace(key, V value)]] -** Αντικαθιστά ​την εγγραφή που αντιστοιχεί στο κλειδί //key// επιστρέφοντας την τιμή V. Δεν γίνεται αντικατάσταση ​αν δεν βρεθεί το κλειδί ​στο Map.
   * **[[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#​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 αν δεν υπάρχει καταχώρηση για το συγκεκριμένο κλειδί.   * **[[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#​entrySet()|entrySet()]] -** Επιστρέφει ένα //Set// από καταχωρήσεις τύπου //​Entry.Map//​ όπου κάθε καταχώρηση περιέχει το συνδυασμό κλειδί-τιμή.
Line 28: Line 28:
 public class StudentMap { public class StudentMap {
  
-  private ​Collection<​Student>​ students;+  private ​Map<Integer,Student> students;
   ​   ​
   public StudentMap() {   public StudentMap() {
-    students = new LinkedHashMap<​Student>​();​+    students = new LinkedHashMap<​Integer,Student>​();​
     populateMap();​     populateMap();​
   }   }
Line 43: Line 43:
   }   }
   ​   ​
-  public void iterateMap() {   +  public void iterateMapEntries() {  
-    ​for(Student st: students) { +    ​Set set = students.entrySet(); 
-    System.out.println(st.toString());​+    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[]) {   public static void main(String args[]) {
-    ​StudentCollection ​stl = new StudentCollection(); +    ​StudentMap ​stl = new StudentMap(); 
-    stl.iterateMap();+    System.out.println("​Map keys are:"​);​ 
 +    stl.iterateMapKeys();​ 
 +    System.out.println("​Map values are:"​);​ 
 +    stl.iterateMapValues();​ 
 +    System.out.println("​Map key-value pairs are:"); 
 +    stl.iterateMapEntries();
   }   }
-+}
 </​code>​ </​code>​
  
java/jfc_intf_map.1426604749.txt.gz · Last modified: 2016/02/26 11:15 (external edit)