Модификация коллекции во время итерации: возможности и решения
При работе с коллекциями вы можете столкнуться с ситуациями, когда вам нужно динамически добавлять элементы во время итерация. Однако Учебное пособие по Java предостерегает от изменения базовой коллекции с помощью методов, отличных от Iterator.remove. Итак, возможно ли вообще этого достичь?
Чтобы обойти ограничения итерации, рассмотрите альтернативный подход:
Использование очереди для итеративной модификации
Используйте очередь для хранения элементов, которые вы хотите обработать. Когда вы встретите элемент, который вызывает необходимость добавления новых элементов, поставьте их в очередь в конце очереди.
Проходя по очереди и постоянно удаляя элементы из очереди, пока она не станет пустой, вы эффективно выполняете поиск в ширину. Этот подход позволяет добавлять элементы во время итерации, не изменяя базовую коллекцию напрямую, что позволяет избежать ошибок, описанных в учебнике по Java.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3