- Заметки
- Основы Dart 2.x (Коллекции)
За последние 30 дней: 0 просмотров, 0 посетителей.
Основы Dart 2.x (Коллекции)
Во многих приложениях требуется создавать группы связанных объектов и управлять ими. В языке Dart для этого существуют коллекции.
Коллекции предоставляют более гибкий способ работы с группами объектов. В отличие от массивов которые используются в других языках (например в С++\C#), коллекция, с которой вы работаете, может расти или уменьшаться динамически при необходимости. Некоторые коллекции допускают назначение ключа любому объекту, который добавляется в коллекцию, чтобы в дальнейшем можно было быстро извлечь связанный с ключом объект из коллекции. Так же коллекции могут быть параметризированы (generics).
Dart изначально содержит API основных коллекций:
- списков (List),
- множеств (Set),
- хешей (Map).
List (список)
- List представляет собой массив с фиксированным или динамическим размером, и с доступом к элементам, осуществляемым при помощи числового индекса. Данная коллекция по определению упорядочена, и соответственно можно полностью управлять тем, куда помещать новые элементы, откуда удалять элементы и сортировать и переупорядочивать существующие. Кроме этого списки поддерживают операции поиска элементов в коллекции и могут быть обобщенными.
Приведем несколько примеров:
Set (множество)
- В Dart коллекция Set представляют собой неупорядоченный набор уникальных элементов. Поскольку элементы не упорядочены, нет возможности получать их по индексу (позиции). Для создания Set применяются фигурные скобки {}.
Рассмотрим несколько примеров:
- Методы contains() и containsAll() служат для проверки существования элемента в наборе.
Map (хэш)
- Хэш, известный как словарь (ассоциативный массив) или хэш, это неупорядоченный набор пар ключ-значение. В хеше, для облегчения поиска, значение привязывается к ключу.
Для определения хешей так же необходимы фигурные скобки {}, можно использовать простой синтаксис литерала или использовать конструктор.
Посмотрим на примерах:
То есть каждый элемент в Map фактически представляет собой объект Map<K, V>, где K - тип ключей, а V - тип значений. У этого типа есть два свойства: key (ключ элемента) и value (значение элемента).
Подборка заметок