Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите как избежать ConcurrentModificationException

Тема в разделе "Разработка плагинов для новичков", создана пользователем musel70, 1 апр 2014.

Статус темы:
Закрыта.
  1. Автор темы
    musel70

    musel70 Активный участник Пользователь

    Баллы:
    88
    Всем Добрый День!
    Появилась такая проблема.
    У меня есть класс турели и лист с турелями. Также у меня есть BukkitRunnable который каждые 10 тиков пробегает по листу. Как можно удалить объект из лист без появления этой ошибки. Я пробовал сделать это так

    Код:
    public static void removeTurret(Turret turret) {
            Iterator<Turret> it = Turret.totemList.iterator();
            while (it.hasNext()) {
                Torret t = it.next();
                if(t == turret) {
                    it.remove();
                }
              
            }
        }
    Код:
    public class TowerRunnable extends BukkitRunnable {
    
        @Override
        public void run() {
            Iterator<Turret> it = Turret.totemList.iterator();
            while (it.hasNext()) {
                Turret t = it.next();
                t.tick();
            }
        }
    
    }
    Помогите пожалуйста исправить
     
  2. Хостинг MineCraft
    <
  3. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Нельзя модифицировать коллекцию во время прохода по ней циклом.
     
    musel70 нравится это.
  4. Автор темы
    musel70

    musel70 Активный участник Пользователь

    Баллы:
    88
    А как тогда поступить?
     
  5. kirill2011s

    kirill2011s Старожил Пользователь

    Баллы:
    103
    Ну попробуйте скажем... Добавить булевскую переменную и когда у вас идет цикл, ставите true, и делаете дополнительное условие в месте добавления в коллекцию, мол ждать пока цикл не кончится и переменная не станет false.
     
    Den_Abr и musel70 нравится это.
  6. Автор темы
    musel70

    musel70 Активный участник Пользователь

    Баллы:
    88
    Большое спасибо за идею. Как проверю отпишусь[DOUBLEPOST=1396369937,1396368502][/DOUBLEPOST]Все работает всем спасибо.
     
Статус темы:
Закрыта.

Поделиться этой страницей