java:jfc_intf_sorted_set_map

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
java:jfc_intf_sorted_set_map [2015/03/17 12:59]
gthanos created
java:jfc_intf_sorted_set_map [2016/02/26 11:15] (current)
Line 3: Line 3:
 ===== java.util.SortedSet ===== ===== java.util.SortedSet =====
  
-Τo interface //​SortedSet//​ είναι ένα //Set// που διατηρεί τα στοιχεία του σε αύξουσα σειρά με βάση την υλοποίηση του interface //​Comparable//​ ή της κλάσης Comparator για τον συγκεκριμένο τύπο δεδομένων. Οι επιπλέον μέθοδοι του συγκεκριμένου interface είναι οι εξής+Τo interface //​SortedSet//​ είναι ένα //Set// που διατηρεί τα στοιχεία του σε αύξουσα σειρά με βάση την υλοποίηση του interface //​Comparable//​ ή ενός //Comparator// για τον συγκεκριμένο τύπο δεδομένων. Οι επιπλέον μέθοδοι του συγκεκριμένου interface είναι οι εξής
   * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​SortedSet.html#​first()|first()]] - ** Επιστρέφει το 1ο στοιχείο από το //Set//.   * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​SortedSet.html#​first()|first()]] - ** Επιστρέφει το 1ο στοιχείο από το //Set//.
-  * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​SortedSet.html#​last()|last()]] - ** Επιστρέφει το τελευταίο στοιχείο από το //Set// +  * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​SortedSet.html#​last()|last()]] - ** Επιστρέφει το τελευταίο στοιχείο από το //Set//. 
-  * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​SortedSet.html#​headSet(E)|headSet(E toElement)]] - ** Επιστρέφει το υποσύνολο του Set που είναι μικρότερο από την τιμή //​toElement//​. +  * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​SortedSet.html#​headSet(E)|headSet(E toElement)]] - ** Επιστρέφει το υποσύνολο του Set που τα στοιχεία του είναι μικρότερα από την τιμή //​toElement//​. 
-  * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​SortedSet.html#​tailSet(E)|tailSet(E fromElement)]] - ** Επιστρέφει το υποσύνολο του Set που είναι μεγαλύτερο ή ίσο από την τιμή //​fromElement//​.+  * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​SortedSet.html#​tailSet(E)|tailSet(E fromElement)]] - ** Επιστρέφει το υποσύνολο του Set που τα στοιχεία του είναι μεγαλύτερα ή ίσα από την τιμή //​fromElement//​.
   * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​SortedSet.html#​subSet(E,​%20E)|subSet(E fromElement,​ E toElement)]] - ** Επιστρέφει το υποσύνολο του Set από fromElement (μαζί με το fromElement) έως toElement (χωρίς το toElement).   * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​SortedSet.html#​subSet(E,​%20E)|subSet(E fromElement,​ E toElement)]] - ** Επιστρέφει το υποσύνολο του Set από fromElement (μαζί με το fromElement) έως toElement (χωρίς το toElement).
 +
 +<code java NameSortedSet.java>​
 +iimport java.util.*;​
 +
 +public class NameSortedSet {
 +   ​static final Comparator<​Name>​ NameOrdering = 
 +                                        new Comparator<​Name>​() {
 +            public int compare(Name n1, Name n2) {
 +                int cmp = n1.firstName().compareTo(n2.firstName() );
 +                return (cmp != 0 ? cmp : n1.lastName().compareTo(n2.lastName() ));
 +            }
 +    };
 +
 +    public static void main(String[] args) {
 +        ​
 +        SortedSet<​Name>​ names = new TreeSet<​Name>​(NameOrdering);​
 +        names.add(new Name("​Bob",​ "​Travolta"​));​
 +        names.add(new Name("​John",​ "​Smith"​));​
 +        names.add(new Name("​Karl",​ "​Ng"​));​
 +        names.add(new Name("​Jeff",​ "​Smith"​));​
 +        names.add(new Name("​Tom",​ "​Rich"​));​
 +        for(Name n: names)
 +          System.out.println(n);​
 +          ​
 +        System.out.println("​\n***Print headset***"​);​
 +          ​
 +        SortedSet<​Name>​ subnames = names.headSet(new Name("​Karl",​ "​Ng"​));​
 +        for(Name n: subnames)
 +          System.out.println(n);​
 +          ​
 +        System.out.println("​\n***Print tailset***"​);​
 +          ​
 +        subnames = names.tailSet(new Name("​Karl",​ "​Ng"​));​
 +        for(Name n: subnames)
 +          System.out.println(n);​
 +    }
 +}
 +</​code>​
 +
 +<WRAP center round 60% tip>​Στο παραπάνω παράδειγμα δείτε πως αλλάζει η κατάταξη αν αφαιρέσετε τον //​Comparator//​ από τον κατασκευαστή του αντικειμένου //names//.
 +</​WRAP>​
 +
 +===== java.util.SortedMap =====
 +
 +Τo interface //​SortedMap//​ είναι ένα //Map// που διατηρεί τα κλειδιά του σε αύξουσα σειρά με βάση την υλοποίηση του interface //​Comparable//​ ή της κλάσης Comparator τα κλειδιά. Οι επιπλέον μέθοδοι του συγκεκριμένου interface είναι οι εξής
 +  * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​SortedMap.html#​firstKey()|firstKey()]] - ** Επιστρέφει το 1ο κλειδί.
 +  * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​SortedMap.html#​lastKey()|lastKey()]] - ** Επιστρέφει το τελευταίο κλειδί.
 +  * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​SortedMap.html#​headMap(K)|headMap(K toKey)]] - ** Επιστρέφει το υποσύνολο του Map που τα κλειδιά του είναι μικρότερα από την τιμή //toKey//.
 +  * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​SortedMap.html#​tailMap(K)|tailMap(K fromKey)]] - ** Επιστρέφει το υποσύνολο του Map που τα κλειδιά του του είναι μεγαλύτερα ή ίσα από την τιμή //​fromKey//​.
 +  * **[[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​util/​SortedMap.html#​subMap(K,​%20K)|subMap(K fromKey, K toKey)]] - ** Επιστρέφει το υποσύνολο του Set από fromKey (μαζί με το fromKey) έως toKey (χωρίς το toKey).
 +
 +<code java NameProperty.java>​
 +import java.util.*;​
 +
 +public class NameProperty {
 +  private String email;
 +  private String address;
 +
 +  public NameProperty(String mail, String address) {
 +    this.email = mail;
 +    this.address = address;
 +  }
 +
 +  public String getEmail() { return email; }
 +  public String getAddress() { return address; }
 +
 +  public void setEmail(String mail) { email = mail; }
 +  public void setAddress(String address) { this.address = address; }
 +  ​
 +  public String toString() { return "​email:​ "​+email+",​ address: "​+address;​ }
 +}
 +</​code>​
 +
 +<code java NameSortedMap.java>​
 +import java.util.*;​
 +
 +public class NameSortedMap {
 +   ​static final Comparator<​Name>​ NameOrdering = 
 +                                        new Comparator<​Name>​() {
 +            public int compare(Name n1, Name n2) {
 +                int cmp = n1.firstName().compareTo(n2.firstName() );
 +                return (cmp != 0 ? cmp : n1.lastName().compareTo(n2.lastName() ));
 +            }
 +    };
 +
 +    public static void main(String[] args) {
 +        ​
 +        SortedMap<​Name,​NameProperty>​ users = new TreeMap<​Name,​NameProperty>​(NameOrdering);​
 +        users.put(new Name("​Bob",​ "​Travolta"​),​ new NameProperty("​bob@travolta.com",​ "​Gklavani 37, 1st floor"​) );
 +        users.put(new Name("​John",​ "​Smith"​),​ new NameProperty("​john@smith.com",​ "​Gklavani 37, 2nd floor"​) );
 +        users.put(new Name("​Karl",​ "​Ng"​),​ new NameProperty("​karl@ng.com",​ "​Gklavani 37, 3rd floor"​) );
 +        users.put(new Name("​Jeff",​ "​Smith"​),​ new NameProperty("​jeff@smith.com",​ "​Gklavani 37, 4th floor"​) );
 +        users.put(new Name("​Tom",​ "​Rich"​),​ new NameProperty("​tom@rich.com",​ "​Gklavani 37, 5tht floor"​) );
 +        for(Map.Entry<​Name,​NameProperty>​ u: users.entrySet())
 +          System.out.println(u);​
 +          ​
 +        System.out.println("​\n***Print headmap***"​);​
 +          ​
 +        SortedMap<​Name,​NameProperty>​ subusers = users.headMap(new Name("​Karl",​ "​Ng"​));​
 +        for(Map.Entry<​Name,​NameProperty>​ u: subusers.entrySet())
 +          System.out.println(u);​
 +          ​
 +        System.out.println("​\n***Print tailmap***"​);​
 +          ​
 +        subusers = users.tailMap(new Name("​Karl",​ "​Ng"​));​
 +        for(Map.Entry<​Name,​NameProperty>​ u: subusers.entrySet())
 +          System.out.println(u);​
 +    }
 +}
 +</​code>​
  
  
java/jfc_intf_sorted_set_map.1426597159.txt.gz · Last modified: 2016/02/26 11:15 (external edit)