容器类Collections
数组:有序
集合:无序、唯一性、提供集合操作、快速查找
字典:键-值数据对
数组Array
一维数组
var numbers: [Int] = [0,1,2,3,4,5]
var vowels: [String] = ["a","e","i","o","u"]
var numbers2: Array<Int> = [0,1,2,3,4,5]
var emptyNum: [Int] = [] //定义一个空数组
var allZeros = [Int](count: 5, repeatedValue: 0)
二维数组
var board1: Array<Array<Int>> = [[1],[2],[3],[4]]
var board2: [[Int]] = [[1],[2],[3],[4]]
NSArray
//数组中可以包含不同类型的元素
var array: NSArray = [1, "Hello", 3.0]
字典Dictionary
存储 键-值 数据对的无序 数据集
var dict1: [String : String] = ["swift" : "雨燕;快速" , "python" : "大蟒" , "groovy" : "绝妙的"]
var dict2: Dictionary<String,String> = ["swift" : "雨燕;快速" , "python" : "大蟒" , "groovy" : "绝妙的"]
var dict3: [String : String] = [:]
//查看字典
dict1["swift"] //输出“ Optional("雨燕;快速") ”
集合Set
与数组类似的无序 数据集 (没有重复的元素)
var skiilsOsA: Set<String> = ["swift","OC"]
并集
skillsOfA = Set(["swift","OC"])
skillsOfB = Set(["HTML","CSS","Javascript"])
skillsOfA.union(skillsOfC) //求A和C的并集,不修改A
skillsOfA.unionInplace(skillsOfC) //求A和C的并集,并修改A,以下类似
交集
skillsOfA = Set(["swift","OC"])
skillsOfB = Set(["HTML","CSS","Javascript","swift"])
skillsOfA.intersect(skillsOfC)
skillsOfA.intersectInplace(skillsOfC)
减法
skillsOfA = Set(["swift","OC"])
skillsOfB = Set(["HTML","CSS","Javascript","swift"])
skillsOfA.subtract(skillsOfC) //A-C,即["OC"]
skillsOfA.subtractInplace(skillsOfC)
异或
skillsOfA = Set(["swift","OC"])
skillsOfB = Set(["HTML","CSS","swift"])
skillsOfA.exclusiveOr(skillsOfC) //即["OC","HTML","CSS"]
skillsOfA.exclusiveOrInplace(skillsOfC)
子集
var skillsOfD: Set = ["swift"]
skillsOfD.isSubsetOf(skillsOfA) //判断D是否为A的子集
skillsOfD.isStrictSubsetOf(skillsOfA) //判断D是否为A的真子集