НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
172 of 1310 menu

Интерфейс MutableIterator

Интерфейс MutableIterator наследуется от интерфейса Iterator и добавляет метод для удаления текущего элемента из коллекции во время итерации. Он используется для модификации коллекций во время их обхода.

Импорт

import kotlin.collections.MutableIterator

Синтаксис

interface MutableIterator<T> : Iterator<T> { fun remove() }

Пример

Удаление элементов из изменяемого списка с помощью итератора:

val numbers = mutableListOf(1, 2, 3, 4, 5) val iterator = numbers.iterator() while (iterator.hasNext()) { val element = iterator.next() if (element % 2 == 0) { iterator.remove() } } println(numbers)

Результат выполнения кода:

[1, 3, 5]

Пример

Удаление строк из изменяемого множества:

val words = mutableSetOf("apple", "banana", "cherry", "date") val iterator = words.iterator() while (iterator.hasNext()) { val word = iterator.next() if (word.length > 5) { iterator.remove() } } println(words)

Результат выполнения кода:

[apple, date]

Пример

Использование цикла for с проверкой условия для удаления элементов:

val numbers = mutableListOf(10, 15, 20, 25, 30) val iterator = numbers.listIterator() for (element in iterator) { if (element < 20) { iterator.remove() } } println(numbers)

Результат выполнения кода:

[20, 25, 30]

Пример

Удаление всех элементов из коллекции с помощью итератора:

val items = mutableListOf('a', 'b', 'c', 'd', 'e') val iterator = items.iterator() while (iterator.hasNext()) { iterator.next() iterator.remove() } println(items)

Результат выполнения кода:

[]

Важные замечания

Метод remove можно вызывать только после успешного вызова метода next. Попытка вызвать remove без предварительного вызова next приведет к исключению IllegalStateException.

val numbers = mutableListOf(1, 2, 3) val iterator = numbers.iterator() try { iterator.remove() } catch (e: IllegalStateException) { println("Error: ${e.message}") }

Результат выполнения кода:

Error: The next() method has not yet been called, or the remove() method has already been called after the last call to the next() method

Смотрите также

  • интерфейс Iterator,
    базовый интерфейс для итераторов
  • интерфейс MutableCollection,
    изменяемая коллекция элементов
  • интерфейс ListIterator,
    итератор для списков с двунаправленным обходом
  • интерфейс MutableListIterator,
    изменяемый итератор для списков
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить