Лучший способ - это, вероятно, посмотреть на источник для каждого класса, реализованный реализацией Open JDK для каждого класса;таким образом, вы можете получить свой ответ прямо изо рта лошади, как если бы это было: -)
Это, по сути, «сбои-быстрые» в этом смысле означает, что итератор над HashMap сгенерирует исключениеесли он обнаружит, что другой поток изменил целевой HashMap - если вы посмотрите в источнике HashMap, вы увидите, что это делается путем простой проверки счетчика количества ожидаемых изменений.Если количество модификаций отличается от ожидаемого Итератора, это означает, что кто-то еще вошел после последней проверки и запутался с HashMap, и поэтому Итератор выдает ConcurrentModificationException .
Итератор, не подверженный сбоям, не потрудится проверить и с удовольствием проведет свой бизнес в базовой структуре данных.Следовательно, вы получаете некоторую гибкость (в данном случае, вероятно, сомнительную гибкость) в обмен на возможную ошибку позже;то есть, пытаясь получить доступ к значению, которого больше нет.
Как и во всех отказоустойчивых стратегиях, идея состоит в том, что чем раньше обнаружена ошибка, тем легче ее восстановить.или отладка.