Sobes.tech
Junior — Middle

Чӣ гуна метавон бо бехатарӣ аз коллексия гузашт ва ҳамзамон онро тағир дод?

sobes.tech AI

Ҷавоб аз AI

В Java при обходе коллекции и одновременной её модификации важно избегать ConcurrentModificationException. Для этого есть несколько подходов:

  1. Использовать итератор и его метод remove() для удаления элементов во время обхода:
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String item = iterator.next();
    if (условие) {
        iterator.remove(); // безопасное удаление
    }
}
  1. Использовать коллекции из пакета java.util.concurrent, например CopyOnWriteArrayList, которая позволяет безопасно модифицировать коллекцию во время обхода, но с некоторыми ограничениями по производительности.

  2. Собрать элементы для удаления или добавления в отдельный список, а после обхода применить изменения.

Таким образом, безопасно модифицировать коллекцию во время обхода можно через итератор или специальные потокобезопасные коллекции.