Если попытаться вызвать iterator.remove() до вызова next(), то мы получим исключение IllegalStateException
.
Как можно удалить первый элемент коллекции, используя iterator?
Iterator iterator = a.entrySet().iterator();
while (iterator.hasNext()) {
iterator.remove();
}
Метод remove() в классе java.util.Iterator удаляет элемент, который был возвращен последним вызовом метода next(). Если вам надо удалить первый элемент именно с помощью итератора, то:
Iterator iterator = a.entrySet().iterator();
if(iterator.hasNext) {
iterator.next(); // Вернет "первый" элемент
iterator.remove(); // Удалит "первый" элемент
}
Но обратите внимание! В вашем примере вы получаете итератор коллекции реализующую интерфейс Set
(вы получаете эту реализацию через метод entrySet()
). Поэтому вы удаляете первый элемент возвращаемый итератором. Заметьте, не просто первый элемент, а именно первый элемент возвращаемый итератором, т.к. все классы реализующие интерфейс Set не дают никаких гарантий касательно порядка хранения элементов, кроме LinkedHashSet и LinkedHashMap. Если вы не используете один из этих двух последних классов, то в вашем случае вообще нельзя говорить о первом элементе коллекции.
И последнее - заглянув в документацию, вы могли бы сами легко ответить на собственный вопрос.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как добавить в конец строки символ " ' " не вызывая два раза builderreplace?
У меня есть старый проект, отличный от кодировки UTF-8, мне нужен перевод всего проекта в UTF-8Работаю в Intellij Idea
Добрый день мне необходимо подсчитать суммарную зарплату сотрудников по подразделениямДанные я загружаю из csv файла