This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
java:jfc_intf_map [2015/03/17 15:12] gthanos [Μέθοδοι με πολλαπλές εγγραφές] |
java:jfc_intf_map [2015/03/23 03:49] gthanos [Μέθοδοι με πολλαπλές εγγραφές] |
||
---|---|---|---|
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 σε μορφή που να μπορείτε να το διατρέξετε ==== |
* **[[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 43: | Line 42: | ||
} | } | ||
| | ||
- | public void iterateMap() { | + | public void iterateMapEntries() { |
Set set = students.entrySet(); | 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(); | Iterator it = set.iterator(); | ||
while(it.hasNext()) { | while(it.hasNext()) { | ||
Line 53: | Line 68: | ||
public static void main(String args[]) { | public static void main(String args[]) { | ||
StudentMap stl = new StudentMap(); | StudentMap stl = new StudentMap(); | ||
- | stl.iterateMap(); | + | stl.iterateMapKeys(); |
+ | stl.iterateMapValues(); | ||
+ | stl.iterateMapEntries(); | ||
} | } | ||
} | } |