This shows you the differences between two versions of the page.
java:jfc_intf_set [2015/04/21 13:46] gthanos [Υλοποιήσεις] |
java:jfc_intf_set [2016/02/26 11:15] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== 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. | ||