Ποιος επαναλήπτης είναι ασφαλής για αποτυχία;

Πίνακας περιεχομένων:

Ποιος επαναλήπτης είναι ασφαλής για αποτυχία;
Ποιος επαναλήπτης είναι ασφαλής για αποτυχία;
Anonim

Iterator στο ArrayList, τάξεις HashMap είναι μερικά παραδείγματα Fail-fast Iterator. … Αυτό συμβαίνει επειδή, λειτουργούν στον κλώνο της συλλογής, όχι στην αρχική συλλογή και γι' αυτό ονομάζονται fail-safe iterators. Iterator στο CopyOnWriteArrayList, οι κλάσεις ConcurrentHashMap είναι παραδείγματα ασφαλούς για σφάλματα Iterator.

Είναι το iterator ασφαλές για αποτυχία στην Java;

Ο επαναλήπτης στην Java χρησιμοποιείται για τη διέλευση των αντικειμένων μιας συλλογής. Οι συλλογές επιστρέφουν δύο τύπους επαναλήψεων, είτε θα είναι Fail Fast ή Fail Safe. Οι επαναλήπτες Fail Fast ρίχνουν αμέσως ConcurrentModificationException σε περίπτωση δομικής τροποποίησης της συλλογής.

Τι είναι ασφαλές και γρήγορο σε αστοχία στην Java;

Ασφαλής αποτυχία. 1. Εξαίρεση. Οποιεσδήποτε αλλαγές στη συλλογή, όπως η προσθήκη, η κατάργηση και η ενημέρωση συλλογής κατά τη διάρκεια ενός νήματος, επαναλαμβάνουν τη συλλογή και, στη συνέχεια, εξαίρεση ταυτόχρονης τροποποίησης γρήγορης αποτυχίας. Η συλλογή ασφαλούς αποτυχίας δεν κάνει εξαίρεση.

Είναι ο επαναλήπτης λίστας αποτυγχάνει γρήγορα;

Οι επαναλαμβάνοντες επιστράφηκαν από τον επαναλήπτη ArrayList και οι μέθοδοι listIterator είναι γρήγορες: εάν η λίστα τροποποιηθεί δομικά οποιαδήποτε στιγμή μετά τη δημιουργία του επαναλήπτη, με οποιονδήποτε τρόπο εκτός από το με τις μεθόδους αφαίρεσης ή προσθήκης του ίδιου του iterator, ο επαναλήπτης θα δημιουργήσει μια παράλληλη εξαίρεση τροποποίησης.

Είναι το ArrayList fail-fast;

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

Συνιστάται: