Запись на курсы по HTML, CSS, JavaScript, PHP, Python, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
473 of 1310 menu
Бесплатный тренинг по PHP: форматирование строк. Начало 25 сентября. Жми для записи!

Функция intersect

Функция intersect возвращает новую коллекцию, содержащую только те элементы, которые присутствуют в обеих исходных коллекциях. Функция работает с любыми типами, реализующими интерфейс Iterable. Результат всегда возвращается в виде Set.

Синтаксис

infix fun <T> Iterable<T>.intersect(other: Iterable<T>): Set<T>

Пример

Найдем пересечение двух списков:

val list1 = listOf(1, 2, 3, 4, 5) val list2 = listOf(3, 4, 5, 6, 7) val res = list1.intersect(list2) println(res)

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

Set<Int> [3, 4, 5]

Пример

Найдем пересечение двух массивов:

val arr1 = arrayOf('a', 'b', 'c', 'd') val arr2 = arrayOf('c', 'd', 'e', 'f') val res = arr1.intersect(arr2) println(res)

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

Set<Char> ['c', 'd']

Пример

Найдем пересечение двух множеств:

val set1 = setOf("apple", "banana", "orange") val set2 = setOf("banana", "orange", "grape") val res = set1.intersect(set2) println(res)

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

Set<String> ["banana", "orange"]

Пример

Использование инфиксной нотации:

val numbers1 = listOf(10, 20, 30, 40) val numbers2 = listOf(20, 30, 50, 60) val res = numbers1 intersect numbers2 println(res)

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

Set<Int> [20, 30]

Пример

Пересечение коллекций с дубликатами:

val listWithDupes = listOf(1, 2, 2, 3, 3, 3) val otherList = listOf(2, 3, 4) val res = listWithDupes.intersect(otherList) println(res)

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

Set<Int> [2, 3]

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

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

  • Array - массивы
  • List - списки
  • Set - множества
  • MutableList - изменяемые списки
  • MutableSet - изменяемые множества
  • Любые другие типы, реализующие Iterable

Для Map функция intersect не работает напрямую, но можно использовать пересечение ключей или значений:

val map1 = mapOf("a" to 1, "b" to 2, "c" to 3) val map2 = mapOf("b" to 2, "c" to 4, "d" to 5) val commonKeys = map1.keys.intersect(map2.keys) println(commonKeys)

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

Set<String> ["b", "c"]

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

  • функцию union,
    которая объединяет две коллекции без дубликатов
  • функцию subtract,
    которая возвращает разность двух коллекций
  • функцию distinct,
    которая удаляет дубликаты из коллекции
  • функцию contains,
    которая проверяет наличие элемента в коллекции