In [[Swift]], there are several ways to store different collections of data. Most of them are similar to other modern languages. ### Arrays Arrays in [[Swift]] are defined using squared brackets and its length can be modified at runtime. Some relevant functions for arrays are: - Declaring them using `let numbers = Array<Int>()` or `let numbers = [Int]`. - Accessing arrays using `numbers[0]`. - Checking its length using `numbers.count`. - Adding elements using `beatles.append("Ringo")`. - Removing elements using `numbers.remove(at: 2)`. - Checking if an element is present using `numbers.contains(3)`. - Sorting the array using `numbers.sorted()` (returns a value, it is not in-place). - Reversing an array using `numbers.reversed()` (again, not in-place). ### Dictionaries In [[Swift]], dictionaries are defined using a very similar syntax to arrays, but adding key-value pairs. ```swift let example = [ "name": "Taylor Swift", "job": "Singer", "location": "Nashville" ] ``` Accessing an element will return an `Optional` value, to allow for error handling when accessing the dictionary. An easy way to unpack the value is to provide a default value for it: ```swift let job = example["job", default: "unknown"] ``` ### Sets [[Swift]] provides sets for faster data lookup, which can be created using an array literal: ```swift let people = Set(["Denzel Washington", "Tom Cruise", "Nicolas Cage", "Samuel L Jackson"]) ``` As expected, sets contain non-duplicated elements and are useful for faster `.contains` operations.