Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
sulfur26
1 / 1 / 1
Регистрация: 15.01.2013
Сообщений: 91
#1

Удаление элементов коллекции

04.08.2015, 19:24. Просмотров 991. Ответов 4
Метки нет (Все метки)

Привет всем)помогите пожалуйста разобраться почему не работает код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static void main(String[] args)
    {
        HashSet<Integer> set = new HashSet<Integer>();
        set.add(12);
        set.add(5);
        set.add(55);
 
        for (Integer x: set)
        {
            if (x > 10) set.remove(x);
        }
 
        System.out.println(set);
    }
Вылетает ошибка: Exception in thread "main" java.util.ConcurrentModificationException
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2015, 19:24
Ответы с готовыми решениями:

Удаление из коллекции
Драсти! Проблемка такая. Есть два списка. Один стринговый на 50 элементов, а...

Удаление из коллекции
Добрый день. Есть коллекция accounts, из неё нужно убрать один элемент,...

Удаление ключей в коллекции мап
Здравствуйте,проблема следующая : создается коллекция Treemap(который уже по...

Удаление элемента из Set-коллекции
Проблема вот в чем, нужно из cats удалить одного &quot;кота&quot; Что я делаю не так?...

Вывод элементов коллекции Set
Как вывести определенный элемент из коллекции HashSet? Знаю что в ArrayList...

4
Welemir1
Автоматизируй это!
732 / 484 / 210
Регистрация: 30.03.2015
Сообщений: 1,983
04.08.2015, 20:10 #2
нельзя удалять элементы прямо во время итерации! То бишь придумай как это по другому сделать, но не во время перебора
1
sulfur26
1 / 1 / 1
Регистрация: 15.01.2013
Сообщений: 91
04.08.2015, 20:16  [ТС] #3
сделал так:
Java
1
2
3
4
5
6
7
Iterator<Integer> iterator = set.iterator();
 
        while(iterator.hasNext())
        {
 
            if (iterator.next()>10) iterator.remove();
        }
работает,но не пойму,здесь разве не во время итерации удаляется элемент?
0
ne2win
204 / 204 / 71
Регистрация: 25.02.2014
Сообщений: 569
04.08.2015, 21:23 #4
sulfur26, через итератор можно удалять, удалять через коллекцию, когда создали итератор - нет.
0
Ev[G]eN
iOS/Android Developer
Эксперт С++
5115 / 1553 / 950
Регистрация: 23.01.2011
Сообщений: 3,179
Завершенные тесты: 1
07.08.2015, 10:13 #5
Java
1
set.removeIf(value -> value > 10);
0
07.08.2015, 10:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2015, 10:13

Поиск элементов в коллекции и вывод найденных
Есть коллекции ArrayList и текстовое поле TextArea. Метод вызывается нажатием...

Написать метод count для элементов коллекции, которые имеют определенное свойство (add, even)
написать метод count для элементов коллекции, которые имеют определенное...

Написать фильтр для элементов коллекции
Пожалуйста помогите с этими заданиями. Коллекции (10) 5) Написать фильтр для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru