User Tools

Site Tools


java:jfc_intf_set

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_set [2020/03/12 17:45]
gthanos
java:jfc_intf_set [2020/03/16 17:42]
gthanos
Line 1: Line 1:
 ====== Interface java.util.Set και java.util.SortedSet ====== ====== Interface java.util.Set και java.util.SortedSet ======
  
-Το [[http://docs.oracle.com/javase/7/docs/api/java/util/Set.html|Set]] είναι ένα Collection το οποίο δεν επιτρέπει διπλές εγγραφές. Συνήθως υλοποιείται μέσω hash table ή ισοζυγισμένου δυαδικού δέντρου αναζητήσεως. Δείτε το παρακάτω παράδειγμα κώδικα που εξηγεί την λειτουργία του //Set//.+===== java.util.Set ===== 
 + 
 +Το [[http://docs.oracle.com/javase/7/docs/api/java/util/Set.html|java.util.Set]] είναι ένα Collection το οποίο δεν επιτρέπει διπλές εγγραφές. Συνήθως υλοποιείται μέσω hash table ή ισοζυγισμένου δυαδικού δέντρου αναζητήσεως.  
 + 
 +Εάν υλοποιηθεί μέσω HashTable η κλάση της οποίας τα αντικείμενα αποθηκεύονται πρέπει να υλοποιούν τις μεθόδους [[https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-|Object.equals]] και [[https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--|Object.hashCode]]. Εάν υλοποιηθεί μέσω Binary Tree τότε πρέπει να υλοποιείται το //interface// [[https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html|java.lang.Comparable]]. 
 + 
 +Δείτε το παρακάτω παράδειγμα κώδικα που εξηγεί την λειτουργία του [[http://docs.oracle.com/javase/7/docs/api/java/util/Set.html|java.util.Set]].
  
 <code java FindDups2.java> <code java FindDups2.java>
Line 43: Line 49:
 </code> </code>
  
-Εκτός από το //interface// [[http://docs.oracle.com/javase/7/docs/api/java/util/Set.html|java.util.Set]] είναι διαθέσιμο και το [[http://docs.oracle.com/javase/7/docs/api/java/util/SortedSet.html|java.util.SortedSet]] το οποίο είναι απόγονος του [[http://docs.oracle.com/javase/7/docs/api/java/util/Set.html|java.util.Set]] και αποθηκεύει τα στοιχεία ταξινομημένα σε αύξουσα σειρά.+===== java.util.SortedSet ===== 
 + 
 +Τo interface [[http://docs.oracle.com/javase/7/docs/api/java/util/SortedSet.html|java.util.SortedSet]] είναι απόγονος του interface [[http://docs.oracle.com/javase/7/docs/api/java/util/Set.html|java.util.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#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#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). 
 + 
 +<code java StudentSortedSet.java> 
 +import java.util.*; 
 + 
 +public class StudentSortedSet { 
 +    
 +  public static void main(String[] args) { 
 +     
 +    SortedSet<Student> students = new TreeSet<Student>(); 
 +    students.add(new Student("John", "Smith")); 
 +    students.add(new Student("Stanley", "Peters")); 
 +    students.add(new Student("Edgar", "Bloch")); 
 +    students.add(new Student("Suzan", "Miles")); 
 +    students.add(new Student("Mary", "Poppins")); 
 +    students.add(new Student("Tom", "Rich")); 
 +    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>
  
 ===== Υλοποιήσεις ===== ===== Υλοποιήσεις =====
java/jfc_intf_set.txt · Last modified: 2021/05/22 03:01 (external edit)