java:jfc_intf_set
This is an old revision of the document!
Table of Contents
Interface java.util.Set και java.util.SortedSet
Το Set είναι ένα Collection το οποίο δεν επιτρέπει διπλές εγγραφές. Δείτε το παρακάτω παράδειγμα κώδικα που εξηγεί την λειτουργία του Set.
- 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()); } }
Υλοποιήσεις
Βασικές υλοποιήσεις του Set interface είναι οι παρακάτω:
- TreeSet: Υλοποιεί το Set μέσα από ένα Red-Black tree. Ικανοποιητικά γρήγορο. Δεν εγγυάται ότι η σειρά διάτρεξης είναι η σειρά με την οποία εισάγαμε τα δεδομένα. Η σειρά διάτρεξης είναι η σειρά κατάταξης των στοιχείων, διότι υλοποιεί τον interface SortedSet.
- LinkedHashSet: Υλοποιεί το Set μέσα από ένα HashTable με παράλληλη χρήση διπλά συνδεδεμένης λίστας. Γρήγορο στην αναζήτηση. Εγγυάται ότι η σειρά διάτρεξης είναι η σειρά με την οποία εισάγαμε τα δεδομένα, λόγω της ύπαρξης της λίστας. Απαιτεί κατά κανόνα περισσότερο χώρο αποθήκευσης από τον στοιχεία που περιέχει το Set.
Προηγούμενο: Interface java.util.Collections | Περιεχόμενα | Επόμενο: Interface java.util.List |
java/jfc_intf_set.1583960183.txt.gz · Last modified: 2020/03/11 20:56 (external edit)