Коллекции предназначены для хранения значений. Что использовать и когда важно для вашего развития как программиста

Сложность: Начинающий | Легко | Нормальный | Испытывающий

Типы коллекций позволяют хранить значения, и вы можете думать об этом как о способе группировки этих значений. Вам нужно будет подумать, хотите ли вы упорядочить свои значения и как вы хотите получить к ним доступ после того, как они были сохранены.

Читайте подробности… (!)

Предпосылки:

Терминология

Массив: упорядоченная серия объектов одного типа.

Коллекция: последовательность элементов, которые можно перемещать (сколько угодно раз) и к которым можно получить доступ с помощью индексированного нижнего индекса.

Тип данных: представление типа данных, которые могут быть обработаны, например целое число или строка.

Типы коллекций в Swift

В языке Swift есть три Collection типа, доступных в Swift, все из которых хранят values и полезны для разработчиков. Вот сокращенная версия для вашего быстрого ознакомления:

Массив: упорядоченная серия объектов одного типа. Это может быть массив из целых чисел, строк или любого другого типа данных в Swift.

Словарь: связь между ключами и значениями (где все ключи одного типа и все значения одного типа).

Набор: неупорядоченный набор значений (все значения одного типа).

Массивы

Массивы в Swift имеют нулевую индексацию, что означает, что мы можем хранить символы.

Затем к этим элементам можно будет получить доступ через индексирование

arr[0] // returns "a"
arr[1] // returns "b"
arr[2] // returns "c"
arr[3] // returns "d"

означает, что следующие утверждения равенства верны

arr[0] == "a" // true
arr[1] == "b" // true
arr[2] == "c" // true
arr[3] == "d" // true

Массивы также можно объединять, что часто называется конкатенацией.

Когда мы соединяем два массива, то есть на диаграмме ниже «a», «b», «c» и «d» добавляются к «e», «f», «g» и «h». ».

Поскольку мы добавляем второй массив к первому, у вас остается следующий новый массив

Добавление к массивам в основном означает добавление элементов в конец существующего массива.

Это показано на диаграмме ниже, где показано «e», добавленное в конец массива, содержащего «a», «b», «c» и « d ».

Если мы возьмем этот обновленный массив «a», «b», «c», «d», «e» и изменим второй элемент на «z» (если элемент называется arr, мы выполняем arr [2] = «z»), в результате чего получаем:

Альтернативой является использование Swift insert (: atIndex :), которое позволяет нам вставлять элемент по определенному индексу.

Если мы возьмем текущий массив (который теперь содержит элементы «a», «b», «z», «d», «e») и если мы вставим элемент «y» с индексом 1.

Процесс показан на более крупной диаграмме ниже:

Точно так же мы можем использовать Swift removeAtIndex (:), который позволяет нам удалить элемент по определенному индексу.

Перемещение по массивам

Это возможно с помощью синтаксиса for in в Swift (при условии, что массив имеет имя arr).

for item in arr {
    print (item) // in this example print the element
}

Мы также можем перечислять элементы в Swift, что дает нам доступ к индексу.

for (index,item) in arr.enumarate() {
    print (index, item) // e.g. print the index and the element
}

Есть еще кое-что вокруг ArraySlices, но я оставил их для отдельной статьи (ЗДЕСЬ).

Итак, мы можем настроить массив

var arr = [“a”,”b”,”c”,”d”]

Операции с массивом:

Массивы особенно хороши, потому что они упорядочены, поэтому это отличный способ представить отсортированные данные. Разрушение!

Словари

Словари на других языках известны как HashMaps и представляют собой структуру данных, которая сопоставляет ключи со значениями. Они часто используются для высокопроизводительных вычислительных приложений, таких как кэши и базы данных.

Важно помнить, что, в отличие от массивов, они неупорядочены (поэтому, когда вы читаете эту коллекцию, она будет иметь порядок, но он может отличаться при каждом запуске программы).

Словари чрезвычайно эффективны в своей операции поиска и неупорядочены, поэтому мы можем получить значение за постоянное время - точно так же, как листание физического словаря, не имеет значения, где находится значение в структуре, для доступа к которой всегда требуется одно и то же время.

Инициализация словаря

var myDictionary = [Int: Int]()

Графическое представление словаря

Ниже представлено представление словаря с тремя элементами в виде пар "ключ-значение".

Три пары ключ-значение, представленные здесь (если мы вызываем словарь myDictionary), равны myDictionary[4] = 11, myDictionary[8] = 7 and myDictionary[5] = 1.

Это позволяет нам использовать следующие операции:

Есть полное руководство по словарю на Swift (Ссылка здесь)

Наборы

Набор представляет собой неупорядоченную коллекцию, но возможен только один

Инициализация набора

var stringSet = Set<String>()

Набор с a, b, c, d, e будет выглядеть примерно так, как на следующей диаграмме:

Затем мы можем выполнять операции над структурой

Вывод:

Если вы храните данные, возможно, вам понадобится сбор. Их удобно перебирать, и если вам важен порядок, вы, вероятно, используете массив. Если вас не волнует порядок и вам нужна скорость доступа, вероятно, вам подойдет словарь. Если вам нужна структура данных, поддерживающая операции над наборами (и только один экземпляр значения), выберите набор.

В любом случае, на пути к программированию вы, вероятно, будете сталкиваться с этими структурами снова и снова. Наверное, лучше к ним привыкнуть!

Расширьте свои знания

  • Если вас интересуют смежные и несложные массивы, есть полное руководство (ЗДЕСЬ)
  • Вы можете прочитать о ArraySlices (ЗДЕСЬ)
  • Полные статьи о Массивах, Словарях и Наборах доступны для вас, чтобы вы могли более подробно ознакомиться с ними.

Контактное лицо в Twitter:

Любые вопросы? Вы можете связаться со мной ЗДЕСЬ