
- Swift Tutorial
- Swift - Home
- Swift - Overview
- Swift - Environment
- Swift - Basic Syntax
- Swift - Data Types
- Swift - Variables
- Swift - Optionals
- Swift - Tuples
- Swift - Constants
- Swift - Literals
- Swift - Operators
- Swift - Decision Making
- Swift - Loops
- Swift - Strings
- Swift - Characters
- Swift - Arrays
- Swift - Sets
- Swift - Dictionaries
- Swift - Functions
- Swift - Closures
- Swift - Enumerations
- Swift - Structures
- Swift - Classes
- Swift - Properties
- Swift - Methods
- Swift - Subscripts
- Swift - Inheritance
- Swift - Initialization
- Swift - Deinitialization
- Swift - ARC Overview
- Swift - Optional Chaining
- Swift - Type Casting
- Swift - Extensions
- Swift - Protocols
- Swift - Generics
- Swift - Access Control
- Swift Useful Resources
- Swift - Compile Online
- Swift - Quick Guide
- Swift - Useful Resources
- Swift - Discussion
What are the collection types that are available in Swift?
In this tutorial, you will learn about all the collections available in the Swift language, such as arrays, dictionaries, and sets.
Collection Types
- Array
- Set
- Dictionary
These collections are generic in Swift, which means they can store values of any type but of the same kind. They can work with strings, ints, classes, structs, booleans, etc. You can store any kind of value in them and cannot insert the wrong type of value by mistake. If you define a string array, you cannot insert values of Int or any other type.
Points to note about collections
Type-safe
We know that Swift is a type-safe language, so collections are also type-safe. It means you can store any type of object in collections. But you cannot insert a value of another type.
Generics
Swift's collections are implemented as a generic collection. It means you can store any type of element in any collection. There is no separate collection for storing different types of elements. For example, you can create an array of strings, class objects, int, etc.
Mutability
Collections declared as constants using the let keyword are immutable which means you cannot alter the array elements after they are initialized. If you wish to alter the collection after initialization, make them variables using the var keyword.
Pass by value
Swift's collection types are passed by value and not by reference. When a collection is assigned to another variable or passed as an argument, a copy of the original collection is made. Changes made to a collection after it is passed to a method or assigned to another variable are not reflected in the state of the original collection.
Iteration
You can iterate over the collection using loops. You can use for-in or forEach loop to iterate over the collection’s elements. For a dictionary, you have two separate arrays for keys and values to iterate them.
Swift's collection types are very significant. Let’s dive into each of them.
Array
An array stores values of the same type in an ordered list. The array can store duplicate values. Swift’s Array type is bridged to Foundation’s NSArray class.
Syntax
You can declare an empty array like the following −
let array: [Type] = [] let array: Array<Type> = [] let array = [Type]()
You can assign elements to the array while declaring it like the following −
var arrayStrings: [String] = ["Alpha", "Beta", "Delta"] // array of strings let arrayInts: Array<Int> = [12, 23, 34, 45] // array of integers
Subscripting
Arrays can be subscripted by passing an index integer into a pair of square brackets suffixed to the array's name like below −
Accessing an element
let stringElement = arrayStrings[2] // "Delta" let intElement = arrayInts[3] // 45
Assign an element
You can also assign a new value to a particular index like below −
Example
var arrayStrings: [String] = ["Alpha", "Beta", "Delta"] // array of strings var arrayInts: Array<Int> = [12, 23, 34, 45] // array of integers arrayStrings[2] = "Gamma" print(arrayStrings) arrayInts[1] = 15
Output
["Alpha", "Beta", "Gamma"]
Note − To modify the array element, the array must be a variable not a constant. Also, while you are assigning a new value using a subscription, the index must be within the array's bounds otherwise the code will crash.
Below are some common methods and properties performed on an array
.append() − To append a new element at the last position.
.removeFirst() − To remove and return the first element.
.removeLast() − To remove and return the last element.
.popLast() − To pop the last element.
.reverse() − To reverse the elements.
.filter() − To filter out the array element based on a condition.
.suffix() − Returns a subsequence, up to the given maximum length, containing the final elements.
.sort() − Sorts the array in place, using the given predicate as the comparison between elements.
.isEmpty − To check whether an array is empty or not.
.count − To get the number of elements containing an array.
Dictionary
A dictionary stores the values associated with keys or in key-value form. Dictionary keys and values do not maintain order.
You can create a dictionary with keys and values and separate them using the colon (:) character.
Syntax
let dictionary: [KeyType: ValueType] = [:] let dictionary: Dictionary<KeyType, ValueType> = [:] let dictionary = [KeyType: ValueType]()
let dictionary1: [String: Int] = ["Alpha": 1, "Beta": 2, "Gamma": 3] let dictionary2: Dictionary<Int, String> = [1: "One", 2: "Two", 3: "Three"]
Note − When you are not sure about the value type, you can use values of any type like the below −
var dictionary: [String: Any] = ["name": "Amit Gupta", "age": 22, "address": "New Delhi, India", "score": 8.9]
In the above example, you can see how to make a dictionary to store values of different types. You will use this in most of the cases in your projects. However, it is not recommended to create dictionaries with Any keyword. Always declare value types such as String, Int, etc.
Subscripting
You can read the element by passing the key name enclosed in brackets [] from a dictionary like below −
Example
var dictionary: [String: Any] = ["name": "Amit Gupta", "age": 22, "address": "New Delhi, India", "score": 8.9] if let name = dictionary["name"] as? String { print("Name found: \(name)") } else { print("name does not found") }
Output
Name found: Amit Gupta
You can assign a new value to the key name enclosed in brackets [] in a dictionary like below −
dictionary["name"] = "Rahul Gupta"
Sets
A set stores unique values of the same type in an unordered list. A set can be used instead of an array when order is not essential and when you want to ensure unique elements.
Example
var numbers: Set = [10, 20, 30, 40] var names: Set = ["Amit", "Rahul", "Pravin", "Sachin"]
How to insert a new element in a set:
names.insert("mohit")
Conclusion
You learned what are the collection types in Swift and how to use them. Collections play an important role in Swift language. Also, there are different methods and properties provided by Swift to perform different actions over collections. Go deep and do some practice on them.
- Related Articles
- Explain what floating point numbers are and what types of floating points are available in Swift
- What are the different types of LED available?
- What are the different types of wait available in Selenium?
- What are different types of access modifiers available in C#?
- What are the different types of point available in geom_point of ggplot2 package in R?
- What are the different types of DOM available to access and modify content in JavaScript?
- What are the shells available in LINUX OS?
- What are the famous street foods available in Mumbai?
- What are the leading milk brands available in India?
- What are collection classes in C#?
- What are different Navigator methods available?
- What are the available options for Data integration in SAP?
- What are the famous street foods available in Himachal Pradesh?
- What are the various waits available in Selenium with python?
- What are the Steps Involved in Effective Collection Procedure?
