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 11:51]
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]]. ​+Η 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//​ όπου κάθε καταχώρηση περιέχει το συνδυασμό κλειδί-τιμή.
   * **[[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#​values()|values()]] -** Επιστρέφει ένα //​Collection//​ με τις τιμές του //Map// δίχως τα κλειδιά. Μία τιμή μπορεί να εμφανίζεται περισσότερες από μία φορές αν αντιστοιχεί σε περισσότερα του ενός κλειδιά.
   * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​Map.html#​keySet()|keySet()]] -** Επιστρέφει ένα //Set// με τα κλειδιά.   * **[[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();​
 +    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>​
 +
 +
  
  
  
  
java/jfc_intf_map.1426593112.txt.gz · Last modified: 2016/02/26 11:15 (external edit)