Διαφορά μεταξύ διεπαφής και απαρίθμησης σε Java

Συγγραφέας: Laura McKinney
Ημερομηνία Δημιουργίας: 2 Απρίλιος 2021
Ημερομηνία Ενημέρωσης: 8 Ενδέχεται 2024
Anonim
Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.
Βίντεο: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.

Περιεχόμενο


Οι τρεις δρομείς που χρησιμοποιούνται για την πρόσβαση στα στοιχεία από οποιαδήποτε συλλογή είναι ένας Αρίθμηση, Iterator και ListIterator. Παρόλο που το Iterator και ο Enumerator προορίζονται για την εκτέλεση του ίδιου έργου. Ακόμα, είναι ξεχωριστά μεταξύ τους με την έννοια ότι η απαρίθμηση έχει πρόσβαση μόνο για ανάγνωση στα στοιχεία της συλλογής. Από την άλλη πλευρά, ο Iterator μπορεί να διαβάσει καθώς και να αφαιρέσει τα στοιχεία από τη συλλογή. Η σημαντική διαφορά μεταξύ του Iterator και του Enumeration είναι ότι το Απαρίθμηση δεν μπορεί να εφαρμοστεί στις κατηγορίες συλλογής, είναι εφαρμόσιμη μόνο στις κληρονομιές. Από την άλλη πλευρά, το Iterator ισχύει για τις κατηγορίες συλλογής ως εκ τούτου, αναφέρεται ως ένας καθολικός δρομέας. Ας μάθουμε κάποια περισσότερη διαφορά μεταξύ του Iterator και του Enumeration με τη βοήθεια του πίνακα σύγκρισης που φαίνεται παρακάτω.

  1. Συγκριτικό διάγραμμα
  2. Ορισμός
  3. Βασικές διαφορές
  4. συμπέρασμα

Συγκριτικό διάγραμμα

Βάση σύγκρισηςIterator Απαρίθμηση
ΒασικόςΤο Iterator είναι ένας καθολικός δρομέας, όπως ισχύει για όλες τις κατηγορίες συλλογής.Η απαρίθμηση δεν είναι καθολικός δρομέας, καθώς ισχύει μόνο για τις παλαιότερες κλάσεις.
ΠρόσβασηΧρησιμοποιώντας το Iterator μπορείτε να διαβάσετε και να αφαιρέσετε τα στοιχεία της συλλογής.Χρησιμοποιώντας την απαρίθμηση μπορείτε να διαβάσετε μόνο τα στοιχεία της συλλογής.
Μέθοδοιδημόσια boolean hasnext ();
δημόσια αντικείμενα επόμενο ();
δημόσιο κενό αφαίρεση ();
το δημόσιο boolean hasMoreElements ();
δημόσιο αντικείμενο nextElement ();
ΠεριορισμόςΤο Iterator είναι ένας δρομολογητής μονοπρόθεσμης πρόσβασης.
Ο Iterator δεν μπορεί να αντικαταστήσει κανένα στοιχείο στη συλλογή.
Ο Iterator δεν μπορεί να προσθέσει κανένα νέο στοιχείο στη συλλογή.
Η απαρίθμηση είναι δρομολογητής μονής κατεύθυνσης προώθησης.
Η απαρίθμηση υποστηρίζει μόνο τις παλαιότερες τάξεις.
Η απαρίθμηση έχει πρόσβαση μόνο για ανάγνωση στα στοιχεία μιας συλλογής.
ΚαταβάλλωΓια να ξεπεραστούν οι περιορισμοί του Iterator, πρέπει να επιλέξετε το ListIterator.Για να ξεπεραστούν οι περιορισμοί της απαρίθμησης, πρέπει να επιλέξετε το Iterator.


Ορισμός της διεπαφής Iterator

Iterator είναι μια διεπαφή στο πλαίσιο συλλογής. Καθώς το Iterator εφαρμόζεται σε όλες τις κατηγορίες συλλογής, αναφέρεται ως ένας γενικός δρομέας. Είναι ο δρομέας που χρησιμοποιείται για την πρόσβαση στα στοιχεία της συλλογής μία προς μία. Χρησιμοποιώντας το Iterator, μπορείτε να ανακτήσετε τα στοιχεία από τη συλλογή και, αν θέλετε, μπορείτε επίσης να αφαιρέσετε τα στοιχεία από τη συλλογή. Το αντικείμενο του Iterator μπορεί να δημιουργηθεί όπως παρουσιάζεται παρακάτω.

Iterator itr = Collc.iterator ();

Η μεταβλητή itr είναι ένα αντικείμενο του Iterator. Collc είναι οποιοδήποτε αντικείμενο συλλογής το οποίο πρόκειται να κυκλοφορήσει ή να επαναληφθεί χρησιμοποιώντας το αντικείμενο (iter) του Iterator. ο iterator () είναι η μέθοδος που χρησιμοποιείται για τη δημιουργία ενός αντικειμένου iterator. Υπάρχουν τρεις μέθοδοι στο Iterator όπως φαίνεται παρακάτω.


δημόσια boolean hasnext (); δημόσιο αντικείμενο επόμενο (); δημόσιο κενό αφαίρεση ();

Η πρώτη μέθοδος hasnext () ελέγχει κατά πόσο η συλλογή έχει κάποια στοιχεία σε αυτήν ή όχι. Εάν η συλλογή έχει τα στοιχεία, θα επιστρέψει το αληθές αλλιώς θα επιστρέψει ψευδές. Η δεύτερη μέθοδος Επόμενο() χρησιμοποιείται για την ανάκτηση του επόμενου στοιχείου στη συλλογή. Η τρίτη μέθοδος αφαιρώ() χρησιμοποιείται για τη διαγραφή των στοιχείων από τη συλλογή.

Ο Iterator μπορεί να ταξιδέψει σε μια συλλογή μόνο προς την κατεύθυνση προς τα εμπρός, δεν μπορεί να κινηθεί πίσω ενώ ταξιδεύει. Το Iterator μπορεί να αφαιρέσει το στοιχείο από τη συλλογή αλλά δεν έχει την δυνατότητα να αντικαταστήσει οποιοδήποτε υπάρχον στοιχείο με ένα νέο στοιχείο ούτε να προσθέσει οποιοδήποτε νέο στοιχείο στη συλλογή. Για να ξεπεραστούν αυτοί οι περιορισμοί, μπορείτε να πάτε για τη διεπαφή ListIterator.

Ορισμός της διασύνδεσης απαρίθμησης

Απαρίθμηση είναι η διεπαφή που εφαρμόζεται στο κληρονομιά και δεν μπορεί να εφαρμοστεί σε οποιαδήποτε κατηγορία συλλογής. Ως εκ τούτου, δεν είναι ένας καθολικός δρομέας. Η απαρίθμηση ανακτά το στοιχείο (αντικείμενο) από τη συλλογή ένα προς ένα. Το αντικείμενο απαρίθμησης έχει πρόσβαση μόνο για ανάγνωση στα στοιχεία της συλλογής. Το αντικείμενο απαρίθμησης δεν μπορεί να αλλάξει κανένα στοιχείο από τη συλλογή. Ας δούμε πώς να δημιουργήσετε αντικείμενο απαρίθμησης, ρίξτε μια ματιά.

Καταμέτρηση er = Vect.elements ();

Η μεταβλητή ε είναι ένα αντικείμενο της απαρίθμησης. ο Vect είναι το αντικείμενο της τάξης φορέα που πρέπει να διασχίζεται από το αντικείμενο (er) της απαρίθμησης. Η μέθοδος στοιχείο() χρησιμοποιείται για τη δημιουργία ενός αντικειμένου της απαρίθμησης. Υπάρχουν μόνο δύο μέθοδοι στη διεπαφή απαρίθμησης όπως φαίνεται παρακάτω.

το δημόσιο boolean hasMoreElements (); δημόσια nextElement ();

Η πρώτη μέθοδος hasMoreElements () χρησιμοποιείται για να ελέγξει την κατάσταση της συλλογής είτε έχει τα στοιχεία σε αυτήν είτε είναι άδειο. Αν η συλλογή έχει τα στοιχεία, η μέθοδος hasMoreElements () επιστρέφει true else return false. Η δεύτερη μέθοδος nextElement () χρησιμοποιείται για την ανάκτηση των στοιχείων από τη συλλογή μία προς μία. Όταν ολοκληρωθεί η αντιστοίχιση, πλησιάζει η μέθοδος nextElement () NoSuchElementException. Το αντικείμενο απαρίθμησης ταξιδεύει μόνο προς την κατεύθυνση προς τα εμπρός. Δεν μπορεί να προσθέσει ή να αφαιρέσει ή να αντικαταστήσει οποιοδήποτε στοιχείο στη συλλογή. Για να ξεπεραστούν αυτοί οι περιορισμοί της απαρίθμησης, πρέπει να επιλέξετε το Iterator.

  1. Η κύρια διαφορά μεταξύ του Iterator και του Enumeration είναι ότι το Iterator είναι ένας καθολικός δρομέας, μπορεί να χρησιμοποιηθεί για την εισαγωγή κάθε αντικειμένου συλλογής. Από την άλλη πλευρά, η απαρίθμηση χρησιμοποιείται μόνο για την μετακίνηση αντικειμένου της κληρονομιάς.
  2. Το αντικείμενο απαρίθμησης έχει πρόσβαση μόνο για ανάγνωση στα στοιχεία της συλλογής. Ωστόσο, το αντικείμενο του Iterator μπορεί να διαβάσει και να αφαιρέσει τα στοιχεία από τη συλλογή.
  3. Υπάρχουν δύο μέθοδοι του iterator one για να ελέγξετε την κατάσταση της συλλογής και μία για να ανακτήσετε τα στοιχεία από τη συλλογή. Εκτός από τις μεθόδους απαρίθμησης, το Iterator διαθέτει μια ακόμη μέθοδο για την αφαίρεση των στοιχείων από τη συλλογή.
  4. Περιορισμοί της απαρίθμησης είναι ένας προς τα εμπρός μονοκατευθυντικός δρομέας, έχει πρόσβαση μόνο για ανάγνωση και μπορεί να εφαρμοστεί στις κατηγορίες συλλογής. Από την άλλη πλευρά, το Iterator δεν μπορεί να αντικαταστήσει ή να προσθέσει οποιοδήποτε νέο στοιχείο στη συλλογή και όπως το Enumeration είναι επίσης ο προς τα εμπρός μονόδρομος δρομέας.
  5. Ο περιορισμός της απαρίθμησης επιλύεται από το Iterator και οι περιορισμοί του Iterator επιλύονται από το ListIterator.

Συμπέρασμα:

Σήμερα, ο δρομέας Iterator και ListItertaor χρησιμοποιούνται επειδή είναι ο γενικός δρομέας και είναι πολύ αποδοτικοί από την απαρίθμηση.