Συνιστάται, 2024

Επιλογή Συντάκτη

Διαφορά μεταξύ του Iterator και του ListIterator στην Java

Το Iterator και το ListIterator είναι οι δύο από τους τρεις δρομείς της Java. Τόσο το Iterator όσο και το ListIterator ορίζονται από το πλαίσιο συλλογής στο πακέτο J ava.Util . Το ListIterator είναι η διεπαφή χρήστη του interface Iterator. Η κύρια διαφορά μεταξύ του Iterator και του ListIterator είναι ότι το Iterator μπορεί να διασχίσει τα στοιχεία της συλλογής μόνο προς την κατεύθυνση προς τα εμπρός, ενώ το ListIterator μπορεί να διασχίσει τα στοιχεία σε μια συλλογή τόσο προς τα εμπρός όσο και προς τα πίσω .

Ας συζητήσουμε μερικές ακόμη διαφορές μεταξύ του Iterator και του ListIterator με τη βοήθεια του πίνακα σύγκρισης που φαίνεται παρακάτω.

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

Βάση σύγκρισηςIteratorListIterator
ΒασικόςΟ Iterator μπορεί να διασχίσει τα στοιχεία μιας συλλογής μόνο προς την κατεύθυνση προς τα εμπρός.Το ListIterator μπορεί να διασχίσει τα στοιχεία μιας συλλογής προς τα εμπρός καθώς και προς την κατεύθυνση προς τα πίσω.
ΠροσθέτωΟ Iterator δεν είναι σε θέση να προσθέσει στοιχεία σε μια συλλογή.Το στοιχείο ListIteror μπορεί να προσθέσει στοιχεία σε μια συλλογή.
ΤροποποιώΟ Iterator δεν μπορεί να τροποποιήσει τα στοιχεία σε μια συλλογή.Το ListIterator μπορεί να τροποποιήσει τα στοιχεία μιας συλλογής χρησιμοποιώντας set ().
ΔιασχίζωΟ Iterator μπορεί να διασχίσει τον Χάρτη, τη Λίστα και το Σετ.Το ListIterator μπορεί να διασχίσει μόνο αντικείμενα λίστας.
ΔείκτηςΟ Iterator δεν έχει καμία μέθοδο για να αποκτήσει ένα δείκτη του στοιχείου σε μια συλλογή.Χρησιμοποιώντας το ListIterator, μπορείτε να αποκτήσετε ένα ευρετήριο του στοιχείου σε μια συλλογή.

Ορισμός του Iterator

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

Το iterator έχει ένα iterator μεθόδου () που επιστρέφει τον iterator στην αρχή της συλλογής. Μόλις πάρετε ένα iterator στην αρχή μιας συλλογής, τότε για να διασχίσετε τα στοιχεία της συλλογής δημιουργηθεί ένας βρόχος που καλεί hasNext () κάθε φορά που επαναλαμβάνεται ο βρόχος. Το hasNext () αν επιστρέφει αληθές σημαίνει ότι το επόμενο στοιχείο υπάρχει στη συλλογή και αν επιστρέψει ψευδές τότε σημαίνει ότι όλα τα στοιχεία διακινούνται. Στη συνέχεια, μέσα στο βρόχο, μπορείτε να αποκτήσετε κάθε στοιχείο σε μια Συλλογή χρησιμοποιώντας το επόμενο () . Η επόμενη () μέθοδος επιστρέφει το επόμενο στοιχείο της συλλογής.

Μειονέκτημα:

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

Ορισμός τουListIterator

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

Οι μέθοδοι του ListIterator είναι οι εξής:

hasNext () : Αν η επιστροφή true επιβεβαιώνει ότι υπάρχουν περισσότερα στοιχεία σε μια συλλογή.
next () : Επιστρέφει τα επόμενα στοιχεία της λίστας.
nextIndex () : Επιστρέφει το ευρετήριο των επόμενων στοιχείων στη λίστα.
hasPrevious () : Επιστρέφει true αν υπάρχουν στοιχεία προς την αντίθετη κατεύθυνση σε μια συλλογή.
previous () : Επιστρέφει το προηγούμενο στοιχείο σε μια συλλογή.
previousIndex () : Επιστρέφει δείκτη του προηγούμενου στοιχείου σε μια συλλογή.
remove () : Διαγραφή του στοιχείου από μια συλλογή.
set () : Τροποποιεί το στοιχείο σε μια συλλογή.
add () : Προσθέτει το νέο στοιχείο σε μια συλλογή.

Βασικές διαφορές μεταξύ του Iterator και του ListIterator

  1. Η βασική διαφορά μεταξύ του Iterator και του ListIterator είναι ότι και ο δρομέας, ο Iterator μπορεί να διασχίσει στοιχεία σε μια συλλογή μόνο προς την κατεύθυνση προς τα εμπρός. Από την άλλη πλευρά, το ListIterator μπορεί να διασχίσει τόσο προς τα εμπρός όσο και προς τα πίσω.
  2. Με το iterator δεν μπορείτε να προσθέσετε κανένα στοιχείο σε μια συλλογή. Αλλά, χρησιμοποιώντας το ListIterator μπορείτε να προσθέσετε στοιχεία σε μια συλλογή.
  3. Χρησιμοποιώντας το Iterator, δεν μπορείτε να καταργήσετε ένα στοιχείο σε μια συλλογή όπου, όπως μπορείτε να καταργήσετε ένα στοιχείο από μια συλλογή χρησιμοποιώντας το ListIterator.
  4. Χρησιμοποιώντας το Iterator μπορείτε να διασχίσετε όλες τις συλλογές όπως Map, List, Set. Αλλά, από το ListIteror μπορείτε να περάσετε μόνο τα αντικείμενα που έχουν εκτελεστεί στο List.
  5. Μπορείτε να ανακτήσετε ένα ευρετήριο ενός στοιχείου χρησιμοποιώντας το Iterator. Αλλά επειδή η Λίστα είναι διαδοχική και βασίζεται σε ευρετήριο, μπορείτε να ανακτήσετε ένα ευρετήριο ενός στοιχείου χρησιμοποιώντας το ListIterator.

Συμπέρασμα:

Μπορείτε να χρησιμοποιήσετε το ListIterator όταν πρέπει να περάσετε ιδιαίτερα ένα αντικείμενο λίστας τόσο προς τα εμπρός όσο και προς τα πίσω. Αλλιώς μπορείτε να χρησιμοποιήσετε το Iterator καθώς υποστηρίζει όλα τα αντικείμενα συλλογής τύπου.

Top