ym104432846
Вставьте ссылку на видео из Youtube, Rutube, VK видео
Задайте вопрос по видео
Что вас интересует?
00:00:00
Определение коллекции и её виды:
  • 1. Коллекции представляют собой группы с переменным числом элементов, включая классы list (список), set (множество), map (словарь)
  • 2. В классах collections объекты имеют единый тип, коллекции могут содержать дублирующиеся или уникальные элементы
  • 3. Порядок элементов списка произвольный, доступ осуществляется по индексу, ключи словаря уникальны, значения могут повторяться
00:01:07
Особенности классов List и Array:
  • 1. Основные отличия между массивами и списками заключаются в возможности изменения размера (массивы не изменяют размер, списки используют методы `add` и `remove`), способе сравнения элементов (адреса ячеек в памяти для массивов и значения самих элементов для списков), и наличии методов для добавления и удаления элементов (списки поддерживают такие операции)
  • 2. Массивы предоставляются стандартным классом `array`, тогда как список представляет собой интерфейс с разными реализациями, каждая из которых обладает собственным функционалом
  • 3. Для создания целочисленных списков в Kotlin используется функция `listOf()`
00:03:08
Создание и работа с изменяемым списком:
  • 1. Для создания изменяемого списка решено использовать функцию `mutable_list` с типом переменной `mutable_list`
  • 2. В уроке планируется рассмотреть работу со списками на примерах, включая создание изменяемых списков с добавлением и удалением элементов
  • 3. Практическая часть урока включает решение задач с использованием разных типов списков и прикладных примеров
00:03:56
Методы добавления и удаления элементов:
  • 1. Функция `add` позволяет добавлять элементы в конец списка по умолчанию
  • 2. Метод `add` поддерживает два варианта добавления элементов: с указанием индекса и без
  • 3. Введённые параметры функции можно подсказывать автоматически сочетаниями клавиш (Ctrl+P или Cmd+P)
00:05:18
Проверка наличия элемента в списке:
  • 1. Создана функция проверки наличия элемента в списке, использующая булево значение true/false аналогично применению метода `contains` (факт на 24 сообщении)
  • 2. Рассмотрены методы проверки пустоты списка (`empty`, `is_not_empty`), возвращающие булевы значения true/false (факт на 25 сообщении)
00:05:59
Поиск индекса элемента в списке:
  • 1. Узнать индекс заданного элемента в списке позволяет метод `indexOf`
  • 2. Последнее вхождение элемента определяется методом `lastIndexOf`
  • 3. Для сортировки списка существуют подходящие встроенные функции
00:06:35
Сортировка и изменение порядка элементов:
  • 1. Элементы списка отсортированы по возрастанию
  • 2. Дополнительно реализованы методы сортировки sport ascending (по возрастанию), sport descending (по убыванию)
  • 3. Функция реверс применяется для обратного порядка элементов после сортировки
00:06:55
Печать элементов списка:
  • Применён метод фор ич для распечатки списка через инлайновую функцию
  • В цикле итерации каждого элемента используется команда print(элемент)
  • Переменная типа итератора автоматически декларируется системой
00:07:26
Использование лямбда-выражений и foreach:
  • 1. Возможность автоматического декларирования переменной `it` доступна через контекстное меню в среде разработки
  • 2. Для улучшения читаемости кода допускается задание произвольного имени переменной внутри лямбда-функций
  • 3. Использование лямбд напоминает работу цикла `for`, однако отличается стилистическими особенностями функционального программирования
00:08:31
Циклы for и forEach:
  • 1. Рассматриваются два подхода для работы со списками и интервалами: использование цикла `for` или `for each`
  • 2. В случае необходимости операторов `continue` или `break`, рекомендуется применять цикл `for`
  • 3. Тип коллекции (список или коллекция другого типа) влияет на выбор подходящего цикла
00:09:00
Фильтрация и преобразование элементов коллекции:
  • 1. Рассмотрены популярные функции для фильтрации и обработки коллекций (filter, map)
  • 2. Показан пример работы функции filter с условием проверки каждого элемента коллекции
  • 3. Приведен пример использования функции map для преобразования элементов коллекции
0: Здравствуйте. Немного поговорим о коллекциях по определению коллекции. Это группы с переменным количеством элементов или нулём элементов. Объекты внутри, как правило, имеют единый тип коллекции, называются коллекциями.
1: Потому что корнем их иерархии в языке является класс collection. Позже, при изучении наследования, это станет понятнее, пока не будем сильно в это углубляться, коллекции могут подразделяться на следующие типы.
2: List список упорядоченный набор элементов, к ним можно обращаться по индексам, в списке могут встречаться дубликаты сет, множество, коллекция уникальных элементов, то есть повторяющиеся элементы.
3: Включены порядок элементов, может быть любым мап словарь или ассоциативный список, определённый набор пар. Пара содержит в себе ключ и значение зная ключ, можно обратиться к какому-нибудь значению.
4: Ключи строго уникальны, а значения могут иметь дубликаты.
5: В этот раз подробнее остановимся на списках. Поведение напоминает работу с массивами, однако есть существенные отличия в принципе работы. Вот основные из них 1 массив имеет строго фиксированный размер и не может уменьшаться.
6: Или увеличиваться изменить размер массива можно только создав его копию с дополнительными или утраченными элементами, списки же имеют методы add и remove для добавления и удаления элементов 2.
7: Массив предоставляется классом array, лист является интерфейсом и имеет разные реализации со своим функционалом. 3. Массивы оптимизированы для примитивов и имеют отдельные типы интере.
8: Чары и так далее списки такой оптимизации не имеют 4 различается процесс сравнивания элементов друг с другом, в массивах сравниваются адреса ячеек в памяти, в списках же идёт сравнение самого.
9: Значение в целом хорошей практикой считается использовать списки вместо массивов везде, где это позволяет техническая реализация, однако с точки зрения производительности массивы имеют над списками преимущество Спис.
10: Создаются с помощью функции list of из стандартной библиотеки Котлин короткая запись создания целочисленного списка выглядит так.
11: Если принудительно проставить тип списка, получим лист типа int это базовый интерфейс для всех неизменяемых списков, его неизменяемость определяется тем, что нельзя просто так взять и обра.
12: Я по индексу к элементу и заменить его на другой. Как мы это делали с массивами. Также отсутствуют функции по добавлению и удалению элементов. В таких списках мы можем читать конкретное значение по индексу, а также
13: Пробегать циклом по всем значениям вместе. Но для того, чтобы создать изменяемый список, необходимо использовать функцию мьютабл лист оф при данной инициализации тип переменной будет мьютабл лист это 2 базовый интер.
14: Face для списков, на основе которого создаются изменяемые списки, это лист с возможностью добавления и удаления элементов. Окей. Теперь переходим к инструментарию по работе со списками в уроке примеры будут предста.
15: На примере целочисленного списка, а в практике, прилагаемый к уроку, будут оформлены задачи с применением различных типов, с неким прикладным контекстом ещё раз создадим изменяемый список с некоторым количеством чисел.
16: Сначала будем добавлять значение в список с помощью функции э. Чтобы воспользоваться ей, необходимо написать переменную со списком и вызвать для неё этот метод с помощью обращения через точку.
17: Метод add может принимать 2 набора параметров, и в зависимости от этого будет произведены разные действия 1 вариант это всего 1 параметр, который является новым элементом, который нужно добавить в список этот элемент по.
18: Умолчанию добавляется в конец списка результат в консоли 2 вариант это когда метод add принимает 2 параметра, на 1 месте прописывается индекс, то место, куда должен быть вставлен элемент проста.
19: 0 на 2 месте через запятую сам элемент функция, принимающая 2 параметра, выглядит так.
20: Результат число 42 добавлено в начало списка.
21: Кстати, во время занесения параметров в функцию можно вывести подсказку о том, какой именно параметр сейчас нужно ввести это окошко не всегда появляется, но оно вызовется с помощью сочетания клавиш ctrl p или команд п на маке курсор.
22: При этом должен находиться внутри скобок, где вводятся параметры метода.
23: Следующая функция проверит наличие элемента в списке и вернёт Булин значение true или false по тому же принципу, как делали это с помощью in в уроке про диапазоны сейчас применим метод contains к списку со значе.
24: 42 и получим true число 42 содержится в списке мьютабл лист следующие функции часто пригождаются на практике при создании условий, когда нужно проверять, содержит ли список хоть какой элемент или же он.
25: Pust это методы из эмпти и is not empty, соответственно, методы возвращают значение true или false.
26: Следующие функции помогут узнать индекс какого-либо элемента, если таковой присутствует в списке. Вызываем метод index of с параметром 42 и получаем индекс 0. Все так, если
27: Одинаковых значений в списке несколько будет возвращено 1, которое встретится, чтобы узнать последний индекс встречающегося элемента. Воспользуемся функцией ласт индекс оф.
28: Окей, чтобы отсортировать список, есть удобные функции.
29: Sport отсортирует по возрастанию и sport descending по убыванию, соответственно, кроме того, можно воспользоваться функцией реверс для изменения порядка элементов в списке на обратный после применения этих 3 методов.
30: Элементы будут расположены по возрастанию.
31: Для распечатки этого списка применим ещё 1 способ. Метод фор ич. Нужно вызвать эту инлайновую функцию у списка, как это обычно делается через точку. Далее пишем фигурные скобки, в которых ука
32: Скажем, что делать на каждом проходе элемента итераций будет Ровно столько, сколько элементов в списке пишем принт элен и внутрь кладём ит ит. Это автоматически задекларированная переменная, тип которой основан на типе, на
33: Списка это мы можем прочитать, наведя курсор на переменную it. Кроме того, среда разработки нам подсвечивает её в лямбде сразу после открытой фигурной скобки. Её название и тип. Мы ещё не изучали лямбды, но.
34: Ещё немного задержимся тут с точки зрения возможности оформления автоматически задекларированную переменную it можно, во первых, явно прописать, вызвав контекстное меню и выбрав принудительную простановку сигнатуры лямды во вто.
35: Вторых, задать произвольное имя переменной, которая будет использоваться внутри тела лямбды часто этот приём нужен для повышения читабельности кода для этого it меняем на произвольное название, и теперь эту переменную можно использовать.
36: Внутри.
37: Окей, очень похоже на принцип работы цикла фор. Не правда ли, способ с foreach выглядит более аккуратным и без дополнительных переменных из за его стилистики функционального программирования. Но есть нюансы, связанные с удобностью и.
38: Производительностью для списков или интервалов. Просто перечислю результаты наблюдений, из которых можно выбрать собственный способ. Исходя из ситуации. Если используется интервал, следует использовать цикл фор, если использу
39: Коллекция типа списка, то следует использовать for each если есть необходимость использовать операторы континио или break, то удобнее всего делать это в цикле for
40: Расскажу ещё про пару популярных функций, обязательных к изучению основная функция для фильтрации коллекции фильтр условие задаётся в фигурных скобках, где указывается логическое выражение, которое возвращает true или false.
41: Так как функция не изменяет список, её можно использовать и с изменяемыми списками напишем этот пример отфильтрованный список будет помещён в новую переменную в фигурных скобках пишем условие ит элемент коллекции равен.
42: Например, 42 ниже сделаем вывод нового списка через foreach таким образом, каждый элемент будет проверяться на равенство с числом 42, и если оно верно, элемент запишется в новый список.
43: И ещё 1 полезная функция для коллекции map используется если нам нужно повзаимодействовать со всеми элементами. Конечно, все это можно сделать в цикле for, но так будет изящнее и будет соответствовать стилю функционального программирования.
44: Применив функцию map, можно обойти все элементы списка и записать их преобразования в новый список для демонстрации подойдёт любая простая операция, например, умножим на 2 все элементы из списка мьютабл лист.
45: 2 там сейчас содержится 2 числа 42 сохраним результат преобразований в новый список мьютабл лист 3 и выведем его в консоль.
46: Далее на практике написания приложений мы часто будем сталкиваться с функциями, расширениями и даже научимся создавать свои сейчас. Это все, что я хотел сказать по стандартным функциям для коллекций, протестировать.