Πώς να χρησιμοποιήσετε τη μέθοδο Iterator για να αφαιρέσετε ένα στοιχείο από μια συλλογή σε Java;

Pos Na Chresimopoiesete Te Methodo Iterator Gia Na Aphairesete Ena Stoicheio Apo Mia Sylloge Se Java



Ο ' επαναληπτικός Η μέθοδος προσφέρει έναν ασφαλή και εύκολο τρόπο για να αφαιρέσετε ή να διαγράψετε συγκεκριμένα στοιχεία δεδομένων από μια συλλογή κατά την επανάληψη πάνω της. Αποτρέπει την εμφάνιση « ConcurrentModificationException ' που προκύπτει όταν ο ενισχυμένος βρόχος for προσπαθεί να τροποποιήσει τη συλλογή. Αποθηκεύει το κομμάτι της τρέχουσας θέσης και προσφέρει στους προγραμματιστές την ευκαιρία να προχωρήσουν και να αφαιρέσουν τα υποκείμενα στοιχεία όπως απαιτείται.

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







Πώς να χρησιμοποιήσετε τη μέθοδο Iterator για να αφαιρέσετε ένα στοιχείο από μια συλλογή σε Java;

Η μέθοδος επανάληψης είναι μονής κατεύθυνσης και μπορεί να χρησιμοποιηθεί με διάφορους τύπους συλλογής, όπως ' ArrayList», «LinkedList », κ.λπ. Προσφέρει έναν ομοιόμορφο τρόπο αφαίρεσης στοιχείων από οποιαδήποτε συλλογή που υλοποιεί το « Επαναληπτικό ' διεπαφή.



Ας επισκεφτούμε μερικά παραδείγματα για να κατανοήσουμε καλύτερα τη μέθοδο επανάληψης:



Παράδειγμα 1: Αφαίρεση συγκεκριμένων στοιχείων από τη συλλογή χρησιμοποιώντας τη μέθοδο Iterator

Η μέθοδος iterator μπορεί να χρησιμοποιηθεί με το ' αν ” δηλώσεις ή βρόχους για να επιλέξετε τα καθορισμένα στοιχεία. Και μετά το « αφαιρώ Η μέθοδος ()' χρησιμοποιείται για την εκτέλεση της λειτουργίας διαγραφής όπως φαίνεται παρακάτω:





εισαγωγή java.util.* ;
τάξη IterExam
{
δημόσιο στατικός κενός κύριος ( Σειρά [ ] args )
{
ArrayList < Ακέραιος αριθμός > demoArrList = νέος ArrayList < Ακέραιος αριθμός > ( ) ;
Για ( ενθ Εγώ = 0 ; Εγώ <= είκοσι ; Εγώ = Εγώ + 2 )
{
demoArrList. Προσθήκη ( Εγώ ) ;
}
Iterator < Ακέραιος αριθμός > itr = demoArrList. επαναληπτικός ( ) ;
Σύστημα . έξω . println ( 'Παρέχεται ArrayList:' ) ;

Για ( ενθ Εγώ = 0 ; Εγώ < demoArrList. Μέγεθος ( ) ; Εγώ ++ )
{
Σύστημα . έξω . Τυπώνω ( demoArrList. παίρνω ( Εγώ ) + '' ) ;
}
ενώ ( itr. έχειΕπόμενο ( ) )
{
αν ( itr. Επόμενο ( ) % 3 == 0 )
itr. αφαιρώ ( ) ;
}
Σύστημα . έξω . println ( ' \n Μετά την κατάργηση των περιττών στοιχείων ArrayList' ) ;
Για ( ενθ Εγώ = 0 ; Εγώ < demoArrList. Μέγεθος ( ) ; Εγώ ++ )
{
Σύστημα . έξω . Τυπώνω ( demoArrList. παίρνω ( Εγώ ) + '' ) ;
}
}
}

Περιγραφή του παραπάνω κώδικα:

  • Πρώτα, δημιουργείται η ArrayList και στη συνέχεια ένα πολλαπλάσιο του ' 2 Το ' εισάγεται μέχρι το εύρος ' είκοσι ' με τη βοήθεια του ' Για ' βρόχος.
  • Στη συνέχεια, δηλώστε ένα ' επαναληπτικός Αντικείμενο μεθόδου για την εμφάνιση των στοιχείων του ArrayList στην κονσόλα.
  • Στη συνέχεια, χρησιμοποιήστε το ' έχειΕπόμενο ()' με το αντικείμενο επαναλήπτη που θα διασχίσει όλα τα στοιχεία του ArrayList που υπάρχουν.
  • Μετά από αυτό, το « αν Η δήλωση χρησιμοποιείται για τον έλεγχο των στοιχείων που διαιρούνται πλήρως με το 3 ' μέσα σε αυτό.
  • Μετά το ' αφαιρώ ()' η μέθοδος χρησιμοποιείται για τη διαγραφή των στοιχείων που επιστρέφονται από το ' αν », δήλωση.
  • Στο τέλος, η ενημερωμένη ArrayList έχει εμφανιστεί χρησιμοποιώντας το ' Για ' βρόχος.

Μετά τη σύνταξη:



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

Παράδειγμα 2: Αφαίρεση όλων των στοιχείων από τη συλλογή

Για την κατάργηση όλων των στοιχείων της συλλογής, μπορεί να χρησιμοποιηθεί η μέθοδος iterator μαζί με το ' αφαιρώ ()' μέθοδος όπως φαίνεται παρακάτω:

εισαγωγή java.util.* ;
τάξη Κενότητα
{
δημόσιο στατικός κενός κύριος ( Σειρά αργ [ ] )
{
Διάνυσμα < Ακέραιος αριθμός > testVector = νέος Διάνυσμα < Ακέραιος αριθμός > ( ) ;
testVector. Προσθήκη ( 18 ) ;
testVector. Προσθήκη ( είκοσι ένα ) ;
testVector. Προσθήκη ( 25 ) ;
testVector. Προσθήκη ( 27 ) ;
testVector. Προσθήκη ( 30 ) ;

Iterator < Ακέραιος αριθμός > διασχίζω = testVector. επαναληπτικός ( ) ;
Σύστημα . έξω . Τυπώνω ( 'Υπάρχοντα στοιχεία:' ) ;
ενώ ( διασχίζω. έχειΕπόμενο ( ) )
Σύστημα . έξω . Τυπώνω ( διασχίζω. Επόμενο ( ) + '' ) ;
Σύστημα . έξω . Τυπώνω ( ' \n Το testVector περιέχει ' + testVector. Μέγεθος ( ) + 'στοιχεία' ) ;
διασχίζω = testVector. επαναληπτικός ( ) ;
ενώ ( διασχίζω. έχειΕπόμενο ( ) )
{
Σύστημα . έξω . Τυπώνω ( ' \n αφαίρεση' + διασχίζω. Επόμενο ( ) ) ;
διασχίζω. αφαιρώ ( ) ;
}
Σύστημα . έξω . println ( ' \n Τώρα, το testVector περιέχει ' + testVector. Μέγεθος ( ) + 'στοιχεία' ) ;
}
}

Περιγραφή κώδικα:

  • Πρώτα, δηλώστε και αρχικοποιήστε ' Διάνυσμα ' με εικονικές τιμές ακέραιου τύπου χρησιμοποιώντας το ' Προσθήκη ()».
  • Στη συνέχεια, δημιουργήστε μια μέθοδο επαναλήπτη που χρησιμοποιεί το ' έχειΕπόμενο ()' και ' Επόμενο ()» μεθόδους. Εμφανίζει τα στοιχεία δεδομένων και το αντίστοιχο μέγεθός τους.
  • Στη συνέχεια, χρησιμοποιήστε το ' έχειΕπόμενο ()' ιδιότητα κατά μήκος του αντικειμένου iterator μέσα στο ' ενώ ' βρόχος.
  • Μετά από αυτό, χρησιμοποιήστε το ' Επόμενο ()' για να επιλέξετε το επερχόμενο στοιχείο και, στη συνέχεια, το αφαιρώ Η μέθοδος () καλείται να διαγράψει κάθε στοιχείο λήψης.
  • Με αυτόν τον τρόπο, αφαιρούνται όλα τα στοιχεία του Vector και το μέγεθος του Vector εμφανίζεται στην κονσόλα.

Περιγραφή κώδικα:

Ο παραπάνω κωδικός επιβεβαιώνει ότι όλα τα στοιχεία από τη συλλογή έχουν αφαιρεθεί.

Παράδειγμα 3: Αφαίρεση στοιχείου με χρήση ListIterator

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

εισαγωγή java.util.ArrayList ;
εισαγωγή java.util.ListIterator ;
δημόσιο τάξη ListIteratorDemo {

//Εκκίνηση της μεθόδου main().
δημόσιο στατικός κενός κύριος ( Σειρά [ ] args )
{ //Δήλωση και προετοιμασία του ArrayList
ArrayList < Σειρά > ενήλικος = νέος ArrayList < Σειρά > ( ) ;
ενήλικος Προσθήκη ( 'ΦΟΥΤΕΡ με ΚΟΥΚΟΥΛΑ' ) ;
ενήλικος Προσθήκη ( 'Πόλος' ) ;
ενήλικος Προσθήκη ( 'Henleys' ) ;
ενήλικος Προσθήκη ( 'Ιδρώτας' ) ;
ενήλικος Προσθήκη ( 'Ανέμελος' ) ;
ενήλικος Προσθήκη ( 'Πολυτέλεια' ) ;
ενήλικος Προσθήκη ( 'Dryfit' ) ;


ListIterator < Σειρά > λίτρο = ενήλικος listIterator ( ) ;
Σύστημα . έξω . println ( 'Λίστα πριν την αφαίρεση' ) ;
Για ( ενθ Εγώ = 0 ; Εγώ < ενήλικος Μέγεθος ( ) ; Εγώ ++ )
Σύστημα . έξω . Τυπώνω ( ενήλικος παίρνω ( Εγώ ) + '' ) ;
ενώ ( λίτρο. έχειΕπόμενο ( ) ) {
αν ( λίτρο. Επόμενο ( ) . ισοδυναμεί ( 'Ιδρώτας' ) ) {
λίτρο. αφαιρώ ( ) ;
}
}
Σύστημα . έξω . println ( ' \n Λίστα μετά την αφαίρεση' ) ;
Για ( ενθ Εγώ = 0 ; Εγώ < ενήλικος Μέγεθος ( ) ; Εγώ ++ )
Σύστημα . έξω . Τυπώνω ( ενήλικος παίρνω ( Εγώ ) + '' ) ;
}
}

Περιγραφή του παραπάνω κώδικα:

  • Πρώτα, δηλώστε και αρχικοποιήστε το ArrayList με τις ψευδείς τιμές τύπου String και εμφανίστε όλα τα στοιχεία στην κονσόλα χρησιμοποιώντας το ' Για ' βρόχος.
  • Στη συνέχεια, δημιουργήστε ένα αντικείμενο που καλεί το ' έχειΕπόμενο ()' μέθοδος μέσα στο ' ενώ ' βρόχος. Διασχίζει όλα τα κατοικημένα στοιχεία.
  • Μετά το ' αν ' χρησιμοποιείται η δήλωση που ελέγχει κάθε στοιχείο με συγκεκριμένο κείμενο, όταν αυτό το στοιχείο ταιριάζει με το ' αφαιρώ ()» ονομάζεται μέθοδος. Διαγράφει το συγκεκριμένο στοιχείο από το ' αΤέχνη ” με το όνομα ArrayList.
  • Στο τέλος, εμφανίστε την τροποποιημένη ArrayList στην κονσόλα.

Μετά τη σύνταξη:

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

συμπέρασμα

Για να αφαιρέσετε το στοιχείο από μια συλλογή, το ' αφαιρώ ()» χρησιμοποιείται η μέθοδος του επαναλήπτη. Ο επαναλήπτης διέρχεται από το ArrayList για να βρει τα στοχευμένα δεδομένα. Μόλις βρεθεί το « αφαιρώ ()' χρησιμοποιείται η μέθοδος για την αφαίρεση αυτού του συγκεκριμένου στοιχείου δεδομένων. Προσφέρει μια τυποποιημένη τεχνική σε διαφορετικές συλλογές και αποτρέπει προβλήματα και την εμφάνιση πολλών εξαιρέσεων όπως ' ConcurrentModificationException '. Μαζί με αυτό, το « ListIterator ” μπορεί επίσης να είναι χρήσιμο.