User Tools

Site Tools


java:jfc_intf_set

This is an old revision of the document!


java.util.Set

Το Set είναι ένα Collection το οποίο δεν επιτρέπει διπλές εγγραφές. Δείτε το παρακάτω παράδειγμα κώδικα

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);
  }
}

Ένα ενδεικτικό τρέξιμο είναι το παρακάτω

$> java FindDups2 me you me he he her see me you
Unique words:    [see, her]
Duplicate words: [you, me, he]

Βασικές υλοποιήσεις του Set interface είναι οι παρακάτω:

  • HashSet: Υλοποιεί το Set μέσα από ένα HashTable. Γρήγορο στην αναζήτηση. Δεν εγγυάται ότι η σειρά διάτρεξης είναι η σειρά με την οποία εισάγαμε τα δεδομένα. Απαιτεί κατά κανόνα περισσότερο χώρο αποθήκευσης από τον στοιχεία που περιέχει το Set.
  • TreeSet: Υλοποιεί το Set μέσα από ένα Red-Black tree. Πιο αργό στην αναζήτηση. Δεν εγγυάται ότι η σειρά διάτρεξης είναι η σειρά με την οποία εισάγαμε τα δεδομένα. Η σειρά διάτρεξης είναι η σειρά κατάταξης των στοιχείων (υλοποιεί τον interface SorteSet).
  • LinkedHashSet: Υλοποιεί το Set μέσα από ένα HashTable με παράλληλη χρήση διπλά διασυνδεδεομένης λίστας. Γρήγορο στην αναζήτηση. Εγγυάται ότι η σειρά διάτρεξης είναι η σειρά με την οποία εισάγαμε τα δεδομένα, λόγω της ύπαρξης της λίστας. Απαιτεί κατά κανόνα περισσότερο χώρο αποθήκευσης από τον στοιχεία που περιέχει το Set.
java/jfc_intf_set.1426598793.txt.gz · Last modified: 2015/03/17 13:26 (external edit)