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