Το HashSet είναι μια συλλογή αντικειμένων που παρέχεται από την κλάση java.util.HashSet. Κάθε αντικείμενο που προστίθεται σε ένα HashSet είναι μοναδικό, δηλαδή δεν μπορεί να υπάρχει διπλότυπο στοιχείο. Αυτή η συλλογή παρέχει μεθόδους για την προσθήκη και την αφαίρεση στοιχείων, τον έλεγχο αν ένα στοιχείο υπάρχει στο HashSet, τη διαγραφή όλων των στοιχείων και άλλες λειτουργίες.
Ένα από τα κύρια πλεονεκτήματα του HashSet είναι ότι δεν διατηρεί τη σειρά των στοιχείων. Αυτό σημαίνει ότι δεν μπορείτε να εξαγάγετε τα στοιχεία σε μια συγκεκριμένη σειρά. Ωστόσο, παρέχει γρήγορη αναζήτηση στοιχείων, καθώς η απόδοση της αναζήτησης δεν επηρεάζεται από το μέγεθος του HashSet.
Το HashSet είναι κατάλληλο για περιπτώσεις όπου η σειρά των στοιχείων δεν είναι σημαντική και όταν θέλετε να αποφύγετε την εισαγωγή διπλότυπων στοιχείων.
Ένα παράδειγμα χρήσης του HashSet στην Java είναι το παρακάτω:
import java.util.HashSet; public class HashSetExample { public static void main(String[] args) { // Δημιουργία ενός HashSet με στοιχεία τύπου String HashSet<String> set = new HashSet<String>(); // Προσθήκη στοιχείων στο HashSet set.add("apple"); set.add("banana"); set.add("orange"); // Εκτύπωση του HashSet System.out.println(set); } }
Ο παραπάνω κώδικας δημιουργεί ένα HashSet
με στοιχεία τύπου String
. Στη συνέχεια, προσθέτει τα στοιχεία “apple”, “banana” και “orange” στο σύνολο. Τέλος, εκτυπώνει το περιεχόμενο του HashSet
, το οποίο θα εμφανιστεί στη μορφή [apple, banana, orange]
.
Το HashSet
είναι μια δομή δεδομένων που αποθηκεύει μοναδικά στοιχεία χωρίς να διατηρεί τη σειρά εισαγωγής τους. Όταν εκτυπώνεται, τα στοιχεία εμφανίζονται σε μια αυθαίρετη σειρά.
Μπορούμε να προσθέσουμε και να αφαιρέσουμε στοιχεία από το HashSet χρησιμοποιώντας τις μεθόδους add() και remove() αντίστοιχα:
import java.util.HashSet; public class HashSetExample { public static void main(String[] args) { // Δημιουργία ενός HashSet με στοιχεία τύπου String HashSet<String> set = new HashSet<String>(); // Προσθήκη στοιχείων στο HashSet set.add("apple"); set.add("banana"); set.add("orange"); // Εκτύπωση του HashSet System.out.println(set); // Αφαίρεση ενός στοιχείου από το HashSet set.remove("banana"); // Εκτύπωση του ενημερωμένου HashSet System.out.println(set); } }
Ο κώδικας παρουσιάζει ένα παράδειγμα χρήσης της κλάσης HashSet στην Java. Οι κύριες λειτουργίες που πραγματοποιούνται είναι ο προσδιορισμός και η αφαίρεση στοιχείων από το HashSet.
Αρχικά, δημιουργείται ένα αντικείμενο HashSet με στοιχεία τύπου String. Στη συνέχεια, προστίθενται τα στοιχεία “apple”, “banana” και “orange” στο HashSet με τη χρήση της μεθόδου add().
Έπειτα, το περιεχόμενο του HashSet εκτυπώνεται με τη χρήση της μεθόδου println(). Θα εμφανιστεί η αρχική σειρά των στοιχείων, ανεξαρτήτως της σειράς προσθήκης τους, καθώς το HashSet δεν διατηρεί τη σειρά των στοιχείων.
Στη συνέχεια, το στοιχείο “banana” αφαιρείται από το HashSet με τη χρήση της μεθόδου remove(). Τέλος, το ενημερωμένο περιεχόμενο του HashSet εκτυπώνεται ξανά, όπου θα παρουσιαστούν τα στοιχεία “apple” και “orange” χωρίς το “banana”.
Συνολικά, ο κώδικας αυτός δημιουργεί ένα HashSet, προσθέτει στοιχεία, αφαιρεί ένα στοιχείο και εμφανίζει το τελικό περιεχόμενο του HashSet.
[adinserter block=”2″]
Μπορούμε επίσης να ελέγξουμε αν ένα στοιχείο υπάρχει στο HashSet χρησιμοποιώντας τη μέθοδο contains():
import java.util.HashSet; public class HashSetExample { public static void main(String[] args) { // Δημιουργία ενός HashSet με στοιχεία τύπου String HashSet<String> set = new HashSet<String>(); // Προσθήκη στοιχείων στο HashSet set.add("apple"); set.add("banana"); set.add("orange"); // Έλεγχος εάν το HashSet περιέχει το στοιχείο "apple" και εκτύπωση του αποτελέσματος System.out.println(set.contains("apple")); // Έλεγχος εάν το HashSet περιέχει το στοιχείο "pear" και εκτύπωση του αποτελέσματος System.out.println(set.contains("pear")); } }
Ο παραπάνω κώδικας δημιουργεί ένα αντικείμενο τύπου HashSet
που περιέχει στοιχεία τύπου String
. Στη συνέχεια, προσθέτει τρία στοιχεία (“apple”, “banana”, “orange”) στο HashSet
.
Έπειτα, ο κώδικας εκτελεί δύο εντολές ελέγχου χρησιμοποιώντας τη μέθοδο contains()
. Η πρώτη εντολή ελέγχει εάν το HashSet
περιέχει το στοιχείο “apple” και εκτυπώνει το αποτέλεσμα (true
ή false
). Η δεύτερη εντολή ελέγχει εάν το HashSet
περιέχει το στοιχείο “pear” και εκτυπώνει το αποτέλεσμα.
Συνολικά, ο κώδικας επιδεικνύει τη χρήση του HashSet
και τη μέθοδο contains()
για να ελέγξει αν ένα στοιχείο υπάρχει μέσα στη συλλογή.
Για να ελέγξετε αν ένα στοιχείο υπάρχει σε ένα HashSet, μπορείτε να χρησιμοποιήσετε την μέθοδο contains().
Παράδειγμα:
import java.util.HashSet; public class HashSetExample { public static void main(String[] args) { // Δημιουργία ενός HashSet με στοιχεία τύπου String HashSet<String> set = new HashSet<String>(); // Προσθήκη στοιχείων στο HashSet set.add("apple"); set.add("banana"); set.add("orange"); // Έλεγχος αν το HashSet περιέχει το "banana" System.out.println(set.contains("banana")); // Έλεγχος αν το HashSet περιέχει το "pear" System.out.println(set.contains("pear")); } }
Ο παραπάνω κώδικας δημιουργεί ένα HashSet
με στοιχεία τύπου String
. Στη συνέχεια, προσθέτει τρία στοιχεία στο σύνολο: “apple”, “banana” και “orange”.
Έπειτα, ο κώδικας ελέγχει αν το σύνολο περιέχει το στοιχείο “banana” χρησιμοποιώντας τη μέθοδο contains()
. Το αποτέλεσμα αυτού του ελέγχου εκτυπώνεται στην οθόνη.
Στη συνέχεια, ο κώδικας ελέγχει αν το σύνολο περιέχει το στοιχείο “pear” με τη χρήση της μεθόδου contains()
. Και αυτό το αποτέλεσμα εκτυπώνεται.
Έτσι, το αναμενόμενο αποτέλεσμα στην οθόνη θα είναι:
true false
Καθώς το στοιχείο “banana” υπάρχει στο σύνολο, ενώ το στοιχείο “pear” δεν υπάρχει.
Για να αφαιρέσετε ένα στοιχείο από ένα HashSet, μπορείτε να χρησιμοποιήσετε την μέθοδο remove().
Παράδειγμα:
import java.util.HashSet; public class HashSetExample { public static void main(String[] args) { // Δημιουργία ενός HashSet με στοιχεία τύπου String HashSet<String> set = new HashSet<String>(); // Προσθήκη στοιχείων στο HashSet set.add("apple"); set.add("banana"); set.add("orange"); // Εκτύπωση του περιεχομένου του HashSet System.out.println(set); // Αφαίρεση ενός στοιχείου από το HashSet set.remove("banana"); // Εκτύπωση του περιεχομένου του HashSet μετά την αφαίρεση System.out.println(set); } }
Ο κώδικας αυτός δημιουργεί ένα HashSet
με στοιχεία τύπου String
και πραγματοποιεί μερικές λειτουργίες πάνω σε αυτό.
- Δημιουργείται ένα νέο
HashSet
με όνομαset
. - Προστίθενται τρία στοιχεία στο
set
, τα οποία είναι οι λέξεις “apple”, “banana” και “orange”. - Εκτυπώνεται το περιεχόμενο του
set
, το οποίο πρέπει να εμφανίσει τα τρία στοιχεία που προστέθηκαν. - Αφαιρείται το στοιχείο “banana” από το
set
. - Εκτυπώνεται ξανά το περιεχόμενο του
set
, το οποίο πρέπει να εμφανίσει τις λέξεις “apple” και “orange”, καθώς η λέξη “banana” έχει αφαιρεθεί.
Συνολικά, ο κώδικας δημιουργεί ένα σύνολο (set) με μοναδικές τιμές τύπου String και παρουσιάζει την προσθήκη και αφαίρεση στοιχείων από αυτό το σύνολο.
Για να αφαιρέσετε όλα τα στοιχεία από ένα HashSet, μπορείτε να χρησιμοποιήσετε την μέθοδο clear().
[adinserter block=”3″]
Παράδειγμα:
import java.util.HashSet; public class HashSetExample { public static void main(String[] args) { // Δημιουργία ενός HashSet με στοιχεία τύπου String HashSet<String> set = new HashSet<String>(); // Προσθήκη στοιχείων στο HashSet set.add("apple"); set.add("banana"); set.add("orange"); // Εκτύπωση του HashSet System.out.println(set); // Εκκαθάριση του HashSet set.clear(); // Εκτύπωση του κενού HashSet System.out.println(set); } }
Ο παραπάνω κώδικας δημιουργεί ένα HashSet
με στοιχεία τύπου String
και πραγματοποιεί τις παρακάτω ενέργειες:
- Δημιουργεί ένα νέο αντικείμενο
HashSet
με όνομαset
. - Προσθέτει τα στοιχεία “apple”, “banana” και “orange” στο
HashSet
με τη χρήση της μεθόδουadd()
. - Εκτυπώνει το περιεχόμενο του
HashSet
χρησιμοποιώντας τη μέθοδοprintln()
. - Εκτελεί τη μέθοδο
clear()
που αφαιρεί όλα τα στοιχεία από τοHashSet
. - Εκτυπώνει ξανά το περιεχόμενο του
HashSet
μετά την απαλοιφή των στοιχείων.
Συνολικά, ο κώδικας δημιουργεί ένα HashSet
, προσθέτει στοιχεία σε αυτό, το εκτυπώνει, αδειάζει το HashSet
και ξαναεκτυπώνει το αδειασμένο HashSet
.
Για να βρείτε πόσα στοιχεία υπάρχουν σε ένα HashSet, μπορείτε να χρησιμοποιήσετε τη μέθοδο size().
Παράδειγμα:
import java.util.HashSet; public class HashSetExample { public static void main(String[] args) { // Δημιουργία ενός HashSet με στοιχεία τύπου String HashSet<String> set = new HashSet<String>(); // Προσθήκη στοιχείων στο HashSet set.add("apple"); set.add("banana"); set.add("orange"); // Εκτύπωση του μεγέθους του HashSet System.out.println(set.size()); } }
Ο κώδικας παραπάνω δημιουργεί ένα HashSet
με στοιχεία τύπου String
και προσθέτει τρία στοιχεία σε αυτό το σύνολο: “apple”, “banana” και “orange”. Στη συνέχεια, εκτυπώνει το μέγεθος του HashSet
, που στην περίπτωση αυτή θα είναι 3, καθώς περιλαμβάνει τρία μοναδικά στοιχεία.
Το HashSet
είναι μια δομή δεδομένων που αποθηκεύει στοιχεία χωρίς να επιτρέπει διπλότυπες τιμές. Επομένως, αν προσπαθήσετε να προσθέσετε ένα ήδη υπάρχον στοιχείο, δεν θα γίνει καμία αλλαγή στο σύνολο.
Το μέγεθος του HashSet
υπολογίζεται με τη χρήση της μεθόδου size()
, η οποία επιστρέφει τον αριθμό των στοιχείων που περιέχει.
Έτσι, ο κώδικας εκτυπώνει το μέγεθος του HashSet
, που είναι 3, στην έξοδο της κονσόλας.
Μπορείτε να διαπεράσετε τα στοιχεία ενός HashSet με έναν βρόχο for-each.
Παράδειγμα:
import java.util.HashSet; public class HashSetExample { public static void main(String[] args) { // Δημιουργία ενός αντικειμένου HashSet τύπου String HashSet<String> set = new HashSet<String>(); // Προσθήκη στοιχείων στο HashSet set.add("apple"); set.add("banana"); set.add("orange"); // Επανάληψη μέσω ενός for-each loop για κάθε στοιχείο στο HashSet for (String item : set) { System.out.println(item); } } }
Ο παραπάνω κώδικας δημιουργεί ένα αντικείμενο τύπου HashSet, το οποίο είναι μια συλλογή που αποθηκεύει μοναδικά στοιχεία χωρίς να διατηρεί τη σειρά εισαγωγής τους. Στη συνέχεια, προσθέτει τρία στοιχεία (“apple”, “banana”, “orange”) στο HashSet.
Στο τμήμα της επανάληψης, χρησιμοποιείται ένας βρόχος for-each για να επαναλάβει κάθε στοιχείο του HashSet. Κάθε στοιχείο αποθηκεύεται στη μεταβλητή “item” και εκτυπώνεται στην οθόνη.
Έτσι, ο κώδικας εμφανίζει τα τρία στοιχεία του HashSet (“apple”, “banana”, “orange”) στην κονσόλα.
Τα στοιχεία ενός HashSet στην πραγματικότητα είναι αντικείμενα. Στα παραδείγματα που παραπάνω δημιουργήσαμε στοιχεία (αντικείμενα) τύπου “String”. Να θυμάστε ότι ένα String στην Java είναι ένα αντικείμενο (όχι ένα απλό τύπο δεδομένων). Για να χρησιμοποιήσετε άλλους τύπους, όπως το int, πρέπει να καθορίσετε μια αντίστοιχη κλάση wrapper: το Integer. Για άλλους απλούς τύπους, χρησιμοποιήστε: το Boolean για το boolean, το Character για το char, το Double για το double, κλπ:
Παράδειγμα
Χρησιμοποιήστε ένα HashSet που αποθηκεύει αντικείμενα Integer:
import java.util.HashSet; public class HashSetExample { public static void main(String[] args) { // Δημιουργία ενός HashSet με στοιχεία τύπου Integer HashSet<Integer> set = new HashSet<Integer>(); // Προσθήκη στοιχείων στο HashSet set.add(10); set.add(20); set.add(30); // Εκτύπωση του HashSet System.out.println(set); } }
Ο κώδικας παρουσιάζει ένα παράδειγμα χρήσης της κλάσης HashSet
στην Java. Οι κύριες λειτουργίες που πραγματοποιούνται είναι οι εξής:
- Δημιουργία ενός αντικειμένου
HashSet
με στοιχεία τύπουInteger
. - Προσθήκη των αριθμών 10, 20 και 30 στο σύνολο μέσω της μεθόδου
add()
. - Εκτύπωση του περιεχομένου του συνόλου με τη χρήση της μεθόδου
println()
.
Στην έξοδο, θα εμφανιστεί η ακόλουθη γραμμή:
[20, 10, 30]
Αυτό υποδηλώνει ότι τα στοιχεία του HashSet δεν διατηρούνται σε συγκεκριμένη σειρά, καθώς η κλάση HashSet δεν διατηρεί τη σειρά εισαγωγής.