Differences
This shows you the differences between two versions of the page.
| Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
java:jfc_intf_set [2015/04/21 13:46] gthanos [Υλοποιήσεις] |
java:jfc_intf_set [2021/05/22 03:01] |
| ====== java.util.Set ====== | |
| |
| Το [[http://docs.oracle.com/javase/7/docs/api/java/util/Set.html|Set]] είναι ένα Collection το οποίο δεν επιτρέπει διπλές εγγραφές. Δείτε το παρακάτω παράδειγμα κώδικα που εξηγεί την λειτουργία του //Set//. | |
| |
| <code java FindDups2.java> | |
| public class FindDups2 { | |
| public static void main(String[] args) { | |
| Set<String> uniques = new HashSet<String>(); | |
| Set<String> dups = new HashSet<String>(); | |
| |
| for (String a : args) | |
| if (!uniques.add(a)) | |
| dups.add(a); | |
| |
| // Destructive set-difference | |
| uniques.removeAll(dups); | |
| |
| System.out.println("Unique words: " + uniques); | |
| System.out.println("Duplicate words: " + dups); | |
| } | |
| } | |
| </code> | |
| Ένα ενδεικτικό τρέξιμο είναι το παρακάτω | |
| <code> | |
| $> java FindDups2 me you me he he her see me you | |
| Unique words: [see, her] | |
| Duplicate words: [you, me, he] | |
| </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 SortedSet). | |
| * **[[https://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashSet.html|LinkedHashSet]]:** Υλοποιεί το Set μέσα από ένα [[wp>Hash_table|HashTable]] με παράλληλη χρήση διπλά διασυνδεδεομένης λίστας. Γρήγορο στην αναζήτηση. Εγγυάται ότι η σειρά διάτρεξης είναι η σειρά με την οποία εισάγαμε τα δεδομένα, λόγω της ύπαρξης της λίστας. Απαιτεί κατά κανόνα περισσότερο χώρο αποθήκευσης από τον στοιχεία που περιέχει το Set. | |
| |