数组、集合、元祖、字典
数组、集合、元祖、字典
Array (数组)
数组是作为单个值存储的值的集合:
let one = "panda"
let two = "monkey"
let three = "tiger"
let four = "hippo"
let all = [one, two, three, four]
括号内写入数字来从数组中读取值:
all[1]
数组是有序集合,存储相同数据类型的多个值,可以通过下标或其他方法来访问和操作数组中的元素。
数组可以使用固定的长度来存储数据,并且支持快速的随机访问,因此在需要频繁访问和修改数组中的元素时,数组是一种非常有效的数据结构。
Set (集合)
直接从数组创建集合:
let colors = Set(["red", "green", "blue"])
将重复项插入集合,重复项将被忽略,集合只包括红色、绿色和蓝色一次:
let colors2 = Set(["red", "green", "blue", "red", "blue"])
集合是无序的数据集合,可以存储不同类型的多个值,并且支持快速的查找、添加和删除操作。集合内的元素没有特定的顺序,因此不能通过下标来访问集合中的元素。
集合通常用于存储唯一的元素,并且支持高效的元素查找和去重。当需要使用高效的查找算法时,集合通常比数组更加适合。同时,集合还可以用于处理键值对数据。
Swift 提供了多种集合类型,包括集合(Set)、字典(Dictionary)、哈希表等,每种类型都有不同的特点和用途。
元祖 (Tuple)
元组是通过将多个项目放入括号中创建的:
var name = (first: "Taylor", last: "Swift")
使用从 0 开始的数字位置访问元祖:
name.0
或者使用名称访问项目:
name.first
元组允许将多个值一起存储在一个值中。但元组和数组是不同的:
不能在元组中添加或删除项目;它们的大小是固定的。
不能更改元组中项目的类型;它们始终具有与创建时相同的类型。
可以使用数字位置或通过命名来访问元组中的项目,但 Swift 不会让读取不存在的数字或名称。
字典 (字典)
存储字典数据最常见的方法是使用字符串,创建一个字典,用他们的名字存储歌手的身高:
let heights = [
"Taylor Swift": 1.78,
"Ed Sheeran": 1.73
标识符被称为key,从字典中读取数据:
heights["Taylor Swift"]
尝试未定义的key获取值会得到nil:
heights["LeBron James"]
给字典一个"unknown"的默认值,未定义的key获取值会得到"unknown":
heights = [
heights["LeBron James", default: "Unknown"]
初始化
创建一个带有以下键和值字符串的空字典:
var teams = [String: String]()
teams["Paul"] = "Red"
创建一个空数组来存储整数:
var words = Set<String>()
var numbers = Set<Int>()
创建一个空集
heights["Taylor Swift"]
数组和字典也可以用这种方式初始化:
var scores = Dictionary<String, Int>()
var results = Array<Int>()
数组 vs 集合 vs 元组 vs 字典
- Array
let pythons = ["Eric", "Graham", "John", "Michael", "Terry", "Terry"]
当需要按照顺序存储一组相同类型的数据时,可以使用数组。
当需要快速访问数组中的元素时,数组是一种高效的数据结构。
当需要对数组中的元素进行排序、过滤、映射等操作时,数组是一种常用的数据结构。
当元素的数量不会发生变化时,可以使用数组来存储数据。
- Set
let set = Set(["aardvark", "astronaut", "azalea"])
当需要存储一组唯一的值时,可以使用集合。
当需要进行高效的成员检查、添加、删除等操作时,集合是一种高效的数据结构。
当元素之间的顺序不重要时,可以使用集合来存储数据。
- Tuple
let address = (house: 555, street: "Taylor Swift Avenue", city: "Nashville")
当需要临时存储和传递多个值时,可以使用元组。
当需要将多个值作为一个整体进行操作时,元组是一种方便的数据结构。
当元素的数量和类型是固定的时,可以使用元组来存储数据。
- Dictionary
let heights = [
"Eric": 1.78,
"Graham": 1.73,
"Michael": 2.03,
]
当需要使用键值对来存储和查找数据时,可以使用字典。
当需要高效地根据键查找值时,字典是一种高效的数据结构。
当需要对字典中的键值对进行添加、删除、修改等操作时,字典是一种常用的数据结构。