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
Next revision Both sides next revision
java:jfc_intf_map [2015/03/17 15:03]
gthanos [Μέθοδοι με πολλαπλές εγγραφές]
java:jfc_intf_map [2015/03/23 03:56]
gthanos [Μετατροπή του Map σε μορφή που να μπορείτε να το διατρέξετε (Collection ή Set)]
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#​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 27:
 public class StudentMap { public class StudentMap {
  
-  private ​Collection<​Student>​ students;+  private ​Map<Integer,Student> students;
   ​   ​
-  public ​StudentCollection() { +  public ​StudentMap() { 
-    students = new LinkedHashMap<​Student>​();​+    students = new LinkedHashMap<​Integer,Student>​();​
     populateMap();​     populateMap();​
   }   }
Line 37: Line 36:
   public final void populateMap() {   public final void populateMap() {
     students.put(1,​ new Student("​John",​ "​Smith"​));​     students.put(1,​ new Student("​John",​ "​Smith"​));​
-    students.add(2, new Student("​Stanley",​ "​Peters"​));​ +    students.put(2, new Student("​Stanley",​ "​Peters"​));​ 
-    students.add(3, new Student("​Edgar",​ "​Bloch"​));​ +    students.put(3, new Student("​Edgar",​ "​Bloch"​));​ 
-    students.add(4, new Student("​Suzan",​ "​Miles"​));​ +    students.put(4, new Student("​Suzan",​ "​Miles"​));​ 
-    students.add(5, new Student("​Mary",​ "​Poppins"​));​+    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 iterateMap() {   +  public void iterateMapKeys() {  
-    ​for(Student st: students) ​{ +    ​Set set = students.keySet(); 
-    System.out.println(st.toString());​+    ​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.txt · Last modified: 2016/02/26 11:15 (external edit)