Μάθετε τι είναι το HashSet στην Java και πώς να ξεκινήσετε με αυτό!



Αυτό το άρθρο σχετικά με το HashSet στην Java θα σας δώσει μια πλήρη επισκόπηση του τι ακριβώς είναι το HashSet στην Java και πώς να το εφαρμόσετε. Θα μιλήσει επίσης για τις διάφορες μεθόδους και κατασκευαστές που υποστηρίζονται από την τάξη Java HashSet.

Το HashSet στην Java είναι μία από τις πιο σημαντικές πτυχές του . Συνήθως χρησιμοποιείται για την αποθήκευση μοναδικών τιμών με μη τακτοποιημένο τρόπο. Μέσω του μέσου αυτού του άρθρου σχετικά με το HashSet στην Java, θα σας δώσω μια πλήρη περιγραφή του τι ακριβώς είναι το HashSet και πώς μπορείτε να το χρησιμοποιήσετε στην εφαρμογή σας.

Ακολουθούν τα θέματα που καλύπτονται σε αυτό το άρθρο:





Ας ξεκινήσουμε με την πρώτη κατανόηση του τι είναι το HashSet στην Java.

HashSet στην Java



java.util.HashSet τάξη είναι μέλος του πλαισίου συλλογών Java πουκληρονομεί την κλάση AbstractSet καιεφαρμόζει τοΣειρά διεπαφή . Εφαρμόζει σιωπηρά ένα hashtable για τη δημιουργία και αποθήκευση μιας συλλογής μοναδικών στοιχείων. Το Hashtable δεν είναι παρά μια παρουσία της κλάσης HashMap που χρησιμοποιεί έναν μηχανισμό κατακερματισμού για την αποθήκευση των πληροφοριών μέσα σε ένα HashSet.

Το κατακερματισμό είναι η διαδικασία μετατροπής του πληροφοριακού περιεχομένου σε μια μοναδική τιμή που είναι πιο γνωστή ως κωδικός κατακερματισμού. Αυτός ο κωδικός κατακερματισμού χρησιμοποιείται στη συνέχεια για την ευρετηρίαση των δεδομένων που σχετίζονται με το κλειδί. Η όλη διαδικασία μετατροπής του πληροφοριακού κλειδιού στον κατακερματισμό εκτελείται εσωτερικά.

Τώρα για καλύτερη κατανόηση του HashSet στην Java, επιτρέψτε μου να αναφέρω μερικά από τα χαρακτηριστικά του:



Παράδειγμα java array αντικειμένων
  1. Ένα HashSet σε Java δεν επιτρέπει διπλές τιμές.
  2. Μπορεί να περιέχει μηδενικές τιμές.
  3. Το HashSet δεν ακολουθεί τη σειρά εισαγωγής για την αποθήκευση των δεδομένων, αλλά χρησιμοποιεί τον κατακερματισμό για την ευρετηρίαση των τιμών εντός.
  4. Δεν είναι συγχρονισμένος που το καθιστά αυτόματα ασφαλές νήμα.
  5. Η κλάση HashSet εφαρμόζει επίσης Cloneable καιΣειριακή δυνατότητα διασύνδεσης.

Τώρα που γνωρίζετε τι ακριβώς είναι το HashSet στην Java, ας προχωρήσουμε περαιτέρω με αυτό το άρθρο και απομυθοποιήσουμε τις διαφορές μεταξύ του HashMap και του HashSet στην Java.

Java HashSet εναντίον HashMap

HashSet HashMap
Εφαρμογέςjava.util.Ορισμός διεπαφήςΕφαρμογέςjava.util.Map
Αποθηκεύει δεδομένα ως αντικείμεναΑποθηκεύει δεδομένα με τη μορφή ζεύγους κλειδιού-τιμής
Το HashSet απαιτεί μόνο μία παράμετρο για την αρχικοποίηση του αντικειμένουΑπαιτεί δύο παραμέτρους (κλειδί, τιμή) για την αρχικοποίηση του αντικειμένου
Δεν επιτρέπονται διπλά στοιχείαΔεν επιτρέπονται διπλά πλήκτρα, αλλά μπορείτε να αποθηκεύσετε διπλές τιμές
Επιτρέπει μια μηδενική τιμήΕπιτρέπει ένα μόνο μηδενικό κλειδί και οποιονδήποτε αριθμό μηδενικών τιμών
Χρήση HashSet add ()μέθοδος για προσθήκη ή αποθήκευση δεδομένωνHashMap χρησιμοποιήστε μέθοδο put () για την αποθήκευση δεδομένων

Τώρα που έχετε μια σαφή διάκριση μεταξύ HashMap και HashSet, ας επικεντρωθούμε τώρα στο HashSet ξανά και βυθιστείτε σε αυτό. Στην επόμενη ενότητα αυτού του άρθρου, θα σας παρουσιάσω την πλήρη ιεραρχία του HashSet στην Java.

Ιεραρχία HashSet στην Ιάβα

Όπως μπορείτε να δείτε από το παρακάτω διάγραμμα,Η κλάση HashSet εφαρμόζει τη διεπαφή Set. Η διεπαφή Set κληρονομεί περαιτέρω τη διεπαφή Συλλογής η οποία τελικά επεκτείνει το Iterable interface με ιεραρχική σειρά.

Ιεραρχία Java HashSet - HashSet σε Java - Edureka

Τώρα, προχωρώντας με αυτό το άρθρο HashSet σε Java, ας δούμε τις διάφορες κατασκευαστές υποστηρίζεται από αυτήν την τάξη.

Κατασκευαστές της κλάσης java.util.HashSet

Οικοδόμος Περιγραφή
HashSet () Αυτός είναι ο προεπιλεγμένος κατασκευαστής της κλάσης HashSet
HashSet (χωρητικότητα int) Αυτός ο κατασκευαστής χρησιμοποιείται για την αρχικοποίηση της αρχικής χωρητικότητας του συνόλου κατακερματισμού. Η χωρητικότητα μπορεί να αυξηθεί δυναμικά με την προσθήκη νέων στοιχείων
HashSet (χωρητικότητα int, float loadCapacity) Αυτός ο κατασκευαστής χρησιμοποιείται για την αρχικοποίηση της αρχικής χωρητικότητας του συνόλου κατακερματισμού μαζί με τη χωρητικότητα φορτίου
HashSet (Συλλογή γ) Αυτός ο κατασκευαστής χρησιμοποιείται για την προετοιμασίατο σετ κατακερματισμού χρησιμοποιώντας τα στοιχεία της Συλλογής γ

Αυτοί ήταν οι τέσσερις κατασκευαστές της κατηγορίας HashSet στο . Ας μάθουμε τώρα ποια είναι τα διάφορα ορίζεται στο Java HashSet.

Μέθοδοι της κλάσης java.util.HashSet

Μέθοδος Περιγραφή
boolean add (αντικείμενο obj) Αυτή η μέθοδος βοηθά στην προσθήκη ενός καθορισμένου στοιχείου στο HashSet μόνο εάν δεν υπάρχει
κενό καθαρό () Αυτή η μέθοδος βοηθά στην αφαίρεση όλων των στοιχείων από το HashSet
Αντικείμενο κλώνου () Αυτή η μέθοδος επιστρέφει ένα ρηχό αντίγραφο της παρουσίας HashSet αντί για κλώνους των στοιχείων HashSet
Το boolean περιέχει (αντικείμενο o) Αυτή η μέθοδος επιστρέφει αληθής εάν το μεταβιβαζόμενο στοιχείο υπάρχει στο HashSet
boolean isEmpty () Αυτή η μέθοδος επιστρέφει αληθινή σε περίπτωση που το HashSet είναι κενό
Επαναληπτικό επανάληψης () Αυτή η μέθοδος επιστρέφει έναν επαναληπτικό για τα στοιχεία που υπάρχουν στο HashSet
boolean remove (Αντικείμενο o) Αυτή η μέθοδος βοηθά στην αφαίρεση του καθορισμένου στοιχείου από το HashSet εάν υπάρχει
int μέγεθος () Αυτή η μέθοδος επιστρέφει τον συνολικό αριθμό στοιχείων που υπάρχουν στο HashSet

Μαζί με τις παραπάνω μεθόδους, η κλάση HashSet στην Java περιέχει επίσης το από τα superclasses της.

Ας δοκιμάσουμε τώρα να εφαρμόσουμε αυτές τις μεθόδους και να βυθίσουμε τα πόδια μας με κωδικοποίηση.

Εφαρμογή του HashSet στο πρόγραμμα Java

Στο παρακάτω παράδειγμα, θα δοκιμάσουμε και εφαρμόσουμε έναν αριθμό μεθόδων που παρέχονται από την τάξη HashSet.

import java.util.HashSet import java.util. * public class SampleHashSet {public static void main (String [] args) {// Δημιουργία συνόλου HashSet eduCourses = new HashSet () // Προσθήκη νέων στοιχείων στο HashSet eduCourses.add EduCourses.add ('Node.js') eduCourses.add ('Java') eduCourses.add ('Python') eduCourses.add ('Blockchain') eduCourses.add ('JavaScript') eduCourses. add ('Selenium') eduCourses.add ('AWS') eduCourses.add ('Machine Learning') eduCourses.add ('RPA') // Η προσθήκη διπλών στοιχείων θα αγνοηθεί eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // Ελέγξτε αν το HashSet περιέχει ένα συγκεκριμένο στοιχείο String myCourse = 'Node.js' if (eduCourses.contains (myCourse)) {System.out.println (myCourse + ' βρίσκεται στη λίστα μαθημάτων. ')} αλλιώς {System.out.println (myCourse +' δεν περιλαμβάνεται στη λίστα μαθημάτων. ')} // Ταξινόμηση eduCourses χρησιμοποιώντας Λίστα λίστας λίστας = new ArrayList (eduCourses) Collections.sort (list) // Εκτύπωση των ταξινομημένων στοιχείων του HashSet System.out.println (' Εκτύπωση των μαθημάτων σε ταξινομημένη σειρά χρησιμοποιώντας Λίστα: '+ λίστα) // Κατάργηση στοιχείων από το HashSet χρησιμοποιώντας κατάργηση () eduCourses.remove (' Python ') // Επανάληψη στοιχείων HashSet System.out.println (' Επανάληψη της λίστας μαθημάτων μετά την κατάργηση Python: ') Iterator i = eduCourses.iterator () while (i.hasNext ()) System.out.println (i.next ()) // Δημιουργία άλλου αντικειμένου του HashSet HashSet eduNewCourses = new HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Machine Learning') // Κατάργηση όλων των νέων στοιχείων από το HashSet eduCourses.removeAll (eduNewCourses) System.out.println ('Μετά την επίκληση removeAll () μαθήματα μεθόδου αριστερά: '+ eduCourses) // Κατάργηση στοιχείων με βάση την καθορισμένη συνθήκη eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' After invoking removeIf () method: '+ eduCourses) // Κατάργηση στοιχείων από eduCourses που καθορίζονται στο eduNewCourses eduCourses.retainAll (eduNewCourses) System.out.println ('HashSet after' + 'retainAll () λειτουργία: '+ eduNewCourses) // Κατάργηση όλων των στοιχείων που είναι διαθέσιμα στο σύνολο eduCourses.clear () System.out.println (' After invoking clear () method: '+ eduCourses)}}

Όταν εκτελείτε τον παραπάνω κώδικα, θα σας δώσει την έξοδο που φαίνεται παρακάτω.

Με αυτό, φτάνουμε στο τέλος αυτού του άρθρου. Ελπίζω ότι κατάφερα να διατηρήσω τις έννοιες καθαρές και ξεκάθαρες. Μπορείτε να μάθετε περισσότερα για περνώντας από μας .

Τώρα που έχετε καταλάβει τι είναι το HashSet στην Java, ρίξτε μια ματιά στο από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το μάθημα εκπαίδευσης και πιστοποίησης Java J2EE και SOA της Edureka έχει σχεδιαστεί για μαθητές και επαγγελματίες που θέλουν να γίνουν προγραμματιστές Java. Το μάθημα έχει σχεδιαστεί για να σας δώσει μια πρώτη αρχή στον προγραμματισμό Java και να σας εκπαιδεύσει τόσο για τις βασικές όσο και για τις προηγμένες ιδέες Java μαζί με διάφορα πλαίσια Java όπως το Hibernate & Spring.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του άρθρου 'HashSet in Java' και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.