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 [[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. | ||