This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| 
                    java:jfc_intf_sorted_set_map [2015/03/23 06:55] gthanos [java.util.SortedSet]  | 
                
                    java:jfc_intf_sorted_set_map [2016/02/26 11:15] (current) | 
            ||
|---|---|---|---|
| Line 11: | Line 11: | ||
| <code java NameSortedSet.java> | <code java NameSortedSet.java> | ||
| - | import java.util.*; | + | iimport java.util.*; | 
| public class NameSortedSet { | public class NameSortedSet { | ||
| Line 32: | Line 32: | ||
| for(Name n: names) | for(Name n: names) | ||
| System.out.println(n); | 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> | </code> | ||
| + | |||
| + | <WRAP center round 60% tip>Στο παραπάνω παράδειγμα δείτε πως αλλάζει η κατάταξη αν αφαιρέσετε τον //Comparator// από τον κατασκευαστή του αντικειμένου //names//. | ||
| + | </WRAP> | ||
| ===== java.util.SortedMap ===== | ===== java.util.SortedMap ===== | ||
| Line 45: | Line 59: | ||
| * **[[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#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). | * **[[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> | ||