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
java:jfc_intf_set [2020/03/12 17:16]
gthanos [Interface java.util.Set και java.util.SortedSet]
java:jfc_intf_set [2021/05/22 03:01]
Line 1: Line 1:
-====== Interface java.util.Set και java.util.SortedSet ====== 
  
-Το [[http://docs.oracle.com/javase/7/docs/api/java/util/Set.html|Set]] είναι ένα Collection το οποίο δεν επιτρέπει διπλές εγγραφές. Συνήθως υλοποιείται μέσω hash table ή ισοζυγισμένου δυαδικού δέντρου αναζητήσεως. Δείτε το παρακάτω παράδειγμα κώδικα που εξηγεί την λειτουργία του //Set//. 
- 
-<code java FindDups2.java> 
-import java.util.*; 
- 
-public class FindDups { 
-    
-  public static void main(String args[]) { 
-    Collection<Student> students = new ArrayList<>(); 
-    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("John", "Smith")); 
-    students.add(new Student("Stanley", "Peters")); 
-         
-    Collection <Student> uniques = new HashSet<Student>(); 
-    Collection <Student> dups = new HashSet<Student>(); 
-     
-    for(Student st : students) { 
-      if(uniques.contains(st)) 
-        dups.add(st); 
-      else 
-        uniques.add(st); 
-    } 
-     
-    uniques.removeAll(dups); 
-    System.out.println("-- Uniques --"); 
-    print(uniques); 
-    System.out.println("-- Dups --"); 
-    print(dups); 
-  } 
-   
-  public static void print(Collection<Student> collection) { 
-    Iterator<Student> it = collection.iterator(); 
-    while(it.hasNext()) 
-      System.out.println(it.next()); 
-  } 
-} 
-</code> 
-===== Υλοποιήσεις ===== 
- 
-Βασικές υλοποιήσεις του [[https://docs.oracle.com/javase/7/docs/api/java/util/Set.html|Set]] interface είναι οι παρακάτω: 
-  * **[[https://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html|HashSet]]:** Υλοποιεί το Set μέσα από ένα [[wp>Hash_table|HashTable]]. Γρήγορο στην αναζήτηση. Δεν εγγυάται ότι η σειρά διάτρεξης είναι η σειρά με την οποία εισάγαμε τα δεδομένα. Απαιτεί κατά κανόνα περισσότερο χώρο αποθήκευσης από τον στοιχεία που περιέχει το Set. 
-  * **[[https://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html|TreeSet]]:** Υλοποιεί το Set μέσα από ένα [[wp>Red-black_tree|Red-Black tree]]. Ικανοποιητικά γρήγορο. Δεν εγγυάται ότι η σειρά διάτρεξης είναι η σειρά με την οποία εισάγαμε τα δεδομένα. Η σειρά διάτρεξης είναι η σειρά κατάταξης των στοιχείων, διότι υλοποιεί τον interface [[http://docs.oracle.com/javase/7/docs/api/java/util/SortedSet.html|SortedSet]]. 
-  * **[[https://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashSet.html|LinkedHashSet]]:** Υλοποιεί το Set μέσα από ένα [[wp>Hash_table|HashTable]] με παράλληλη χρήση διπλά συνδεδεμένης λίστας. Γρήγορο στην αναζήτηση. Εγγυάται ότι η σειρά διάτρεξης είναι η σειρά με την οποία εισάγαμε τα δεδομένα, λόγω της ύπαρξης της λίστας. Απαιτεί κατά κανόνα περισσότερο χώρο αποθήκευσης από τον στοιχεία που περιέχει το Set. 
- 
-|Προηγούμενο: [[:java:jfc_intf_collection | Interface java.util.Collections  ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:jfc_intf_list| Interface java.util.List  ]] | 
java/jfc_intf_set.txt · Last modified: 2021/05/22 03:01 (external edit)