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 revisionPrevious revision
Next revision
Previous revision
java:jfc_intf_sorted_set_map [2015/03/23 06:55] – [java.util.SortedSet] gthanosjava:jfc_intf_sorted_set_map [2020/03/15 18:48] (current) – external edit 127.0.0.1
Line 10: Line 10:
   * **[[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>+<code java StudentSortedSet.java>
 import java.util.*; import java.util.*;
  
-public class NameSortedSet +public class StudentSortedSet 
-   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) { +  public static void main(String[] args) { 
-         +     
-        SortedSet<Namenames = new TreeSet<Name>(NameOrdering); +    SortedSet<Studentstudents = new TreeSet<Student>(); 
-        names.add(new Name("Bob", "Travolta")); +    students.add(new Student("John", "Smith")); 
-        names.add(new Name("John", "Smith")); +    students.add(new Student("Stanley", "Peters")); 
-        names.add(new Name("Karl", "Ng")); +    students.add(new Student("Edgar", "Bloch")); 
-        names.add(new Name("Jeff", "Smith")); +    students.add(new Student("Suzan", "Miles")); 
-        names.add(new Name("Tom", "Rich")); +    students.add(new Student("Mary", "Poppins")); 
-        for(Name n: names+    students.add(new Student("Tom", "Rich")); 
-          System.out.println(n); +    for(Student n: students
-         +      System.out.println(n); 
-    }+       
 +    System.out.println("\n***Print headset***"); 
 +       
 +    SortedSet<Student> subStudents = students.headSet(new Student("Mary", "Poppins")); 
 +    for(Student s: subStudents) 
 +      System.out.println(s); 
 +       
 +    System.out.println("\n***Print tailset***"); 
 +       
 +    subStudents = students.tailSet(new Student("Mary", "Poppins")); 
 +    for(Student s: subStudents) 
 +      System.out.println(s); 
 +  }
 } }
 </code> </code>
 +
 +<WRAP center round 60% tip>Στο παραπάνω παράδειγμα δείτε πως αλλάζει η κατάταξη αν αφαιρέσετε τον //Comparator// από τον κατασκευαστή του αντικειμένου //names//.
 +</WRAP>
  
 ===== java.util.SortedMap ===== ===== java.util.SortedMap =====
Line 46: Line 55:
   * **[[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.1427093709.txt.gz · Last modified: 2015/03/23 06:55 (external edit)