Отображения и множества
Коллекции пар «ключ — значение» и уникальных элементов.
«Отображения и множества» — бесплатный урок Android Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Android Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Android Academy содержит 4 уроков всего.
Отображения и множества
Отображение хранит пары «ключ–значение»: каждый уникальный ключ указывает на значение, как в словаре.
Множество хранит уникальные элементы без дубликатов и без гарантированного порядка.
Оба типа коллекций дополняют списки и полезны, когда нужны быстрый поиск или уникальность.
Создание отображения
Используйте mapOf() с парами key to value, чтобы создать отображение только для чтения.
Ключи должны быть уникальными. Здесь названия фруктов сопоставляются с ценами.
fun main() {
val prices = mapOf("apple" to 3, "banana" to 2)
println(prices)
println("Size: ${prices.size}")
}Поиск значений
Прочитать значение можно с помощью квадратных скобок и ключа. Если ключ отсутствует, Вы получите null.
Используйте оператор Элвиса ?:, чтобы задать значение по умолчанию для отсутствующего ключа.
fun main() {
val prices = mapOf("apple" to 3, "banana" to 2)
println(prices["apple"])
println(prices["cherry"] ?: "not found")
}Перебор отображения
Цикл for при переборе отображения возвращает каждую запись. Её можно деструктурировать в key и value.
Это обычный способ обработать каждую пару.
fun main() {
val ages = mapOf("Ada" to 36, "Bob" to 24)
for ((name, age) in ages) {
println("$name is $age")
}
}Изменяемые отображения
Используйте mutableMapOf(), если нужно добавлять или изменять записи.
Присваивание новому ключу добавляет его, а присваивание существующему ключу заменяет его значение.
fun main() {
val stock = mutableMapOf("pens" to 5)
stock["books"] = 10
stock["pens"] = 8
println(stock)
}Удаление из отображения
Вызовите remove() с ключом, чтобы удалить соответствующую запись из изменяемого отображения.
Используйте containsKey(), чтобы проверить существование ключа, прежде чем полагаться на него.
fun main() {
val m = mutableMapOf("a" to 1, "b" to 2)
m.remove("a")
println(m.containsKey("a"))
println(m)
}Ключи и значения
Каждое отображение предоставляет коллекции keys и values.
Используйте их, когда Вас интересует только одна сторона пар.
fun main() {
val prices = mapOf("apple" to 3, "banana" to 2)
println(prices.keys)
println(prices.values)
}Создание множества
Используйте setOf(), чтобы создать множество только для чтения. Повторяющиеся значения удаляются автоматически.
Поэтому множества идеально подходят для сбора уникальных элементов.
fun main() {
val tags = setOf("kotlin", "android", "kotlin")
println(tags)
println("Size: ${tags.size}")
}Проверка наличия
Множества особенно удобны для быстрой проверки наличия элементов. Используйте in или contains(), чтобы проверить, присутствует ли значение.
Проверка множества обычно выполняется быстрее, чем последовательный просмотр списка.
fun main() {
val allowed = setOf("admin", "editor")
println("admin" in allowed)
println(allowed.contains("guest"))
}Изменяемые множества и удаление дубликатов
Используйте mutableSetOf(), чтобы постепенно создавать множество. Добавление уже существующего значения ничего не меняет.
Полезный приём: вызовите toSet() для списка, чтобы удалить дубликаты.
fun main() {
val nums = listOf(1, 2, 2, 3, 3, 3)
val unique = nums.toSet()
println(unique)
}Отображение и множество
Выбирайте отображение, когда нужно связать ключи со значениями, например имя пользователя с профилем.
Выбирайте множество, когда важно только наличие элемента и не допускаются дубликаты.
Быстрая проверка
Проверьте, насколько хорошо Вы понимаете отображения и множества.
Итоги
Отображения хранят пары «ключ—значение» с помощью mapOf() и mutableMapOf(); получить значение можно по ключу, а отсутствующие ключи обработать с помощью ?:.
Множества хранят уникальные элементы с помощью setOf() и mutableSetOf() и обеспечивают быструю проверку наличия.
Часто задаваемые вопросы
Урок «Отображения и множества» бесплатный?
Да — полный текст урока «Отображения и множества» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Android Academy, подпишись на CoddyKit PRO. Курс Android Academy содержит 4 уроков всего.
Чему я научусь в уроке «Отображения и множества»?
Коллекции пар «ключ — значение» и уникальных элементов. Ты практикуешь Android Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Android Academy?
Предыдущий опыт не требуется. Android Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Отображения и множества»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Android Academy?
Да. Каждый урок Android Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Списки и изменяемые списки
- Отображения и множества
- map, filter, forEach
- Лямбды и функции высшего порядка