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

Функция retainAll

Функция retainAll оставляет в изменяемой коллекции только те элементы, которые присутствуют в указанной коллекции. Все остальные элементы удаляются. Функция возвращает true, если коллекция была изменена в результате операции. Работает с изменяемыми коллекциями: MutableList, MutableSet, MutableCollection и другими.

Синтаксис

fun retainAll(elements: Collection<E>): Boolean

Пример

Оставим в списке только элементы, которые есть в другом списке:

val numbers = mutableListOf(1, 2, 3, 4, 5) val retainElements = listOf(2, 4, 6) val res = numbers.retainAll(retainElements) println(numbers) println(res)

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

[2, 4] true

Пример

Использование retainAll с множеством:

val chars = mutableSetOf('a', 'b', 'c', 'd', 'e') val retainChars = setOf('c', 'e', 'f') val res = chars.retainAll(retainChars) println(chars) println(res)

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

[c, e] true

Пример

Когда коллекция не изменяется, функция возвращает false:

val numbers = mutableListOf(1, 2, 3) val retainElements = listOf(1, 2, 3, 4) val res = numbers.retainAll(retainElements) println(numbers) println(res)

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

[1, 2, 3] false

Пример

Когда все элементы нужно удалить:

val numbers = mutableListOf(1, 2, 3) val retainElements = emptyList<Int>() val res = numbers.retainAll(retainElements) println(numbers) println(res)

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

[] true

Для каких типов коллекций работает

Функция retainAll работает со следующими типами изменяемых коллекций:

  • MutableList
  • MutableSet
  • MutableCollection
  • LinkedList
  • ArrayList
  • HashSet
  • LinkedHashSet

Не работает с неизменяемыми коллекциями (List, Set), массивами (Array) и отображениями (Map).

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

  • функцию removeAll,
    которая удаляет все указанные элементы из коллекции
  • функцию containsAll,
    которая проверяет, содержит ли коллекция все указанные элементы
  • функцию intersect,
    которая возвращает пересечение двух коллекций
  • функцию filter,
    которая фильтрует элементы по условию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить