User Tools

Site Tools


java:jfc_intf_sorted_set_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
Next revision Both sides next revision
java:jfc_intf_sorted_set_map [2015/03/23 05:30]
gthanos [java.util.SortedSet]
java:jfc_intf_sorted_set_map [2017/02/07 21:24]
gthanos [java.util.SortedMap]
Line 9: Line 9:
   * **[[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 ===== ===== java.util.SortedMap =====
Line 19: Line 60:
   * **[[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>
  
 +|Προηγούμενο: [[:java:jfc_intf_sort | Sorting  ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:jfc_algorithms| Αλγόριθμοι ]] |
java/jfc_intf_sorted_set_map.txt · Last modified: 2020/03/15 18:48 (external edit)