//Swift语言提供了arrays、Sets和Dictionaryies三种集合类型来存储集合数据。数组(Arrays)是有序的数据的集。集合(Sets)是无序无重复数据的集合。字典(Dictionaries)是无需的键值对的集。Swift语言中的Arrays、Sets、Dictionaries中存储的数据类型必须明确。这意味着我们不能把不正确的数据类型插入其中
//一.数组
//创建一个由特定数据类型构成的空数组
var array = [Int]()
array.append(3)
//可以创建特定大小并且所有数据被默认的构造方法。
var three = Array(repeating:0.0,count:3) //"[0, 0, 0]"
//通过两个数组相加创建一个数组
var oneArray = Array(repeatElement(2.5, count: 3)) //"[2.5, 2.5, 2.5]"
var twoArray = Array(repeatElement(3.0, count: 3)) //"[2.5, 2.5, 2.5, 3, 3, 3]"
var threeArray = oneArray+twoArray "[2.5, 2.5, 2.5, 3, 3, 3]"
//增删改查
var shopArray = ["Eggs","Milk"]
print(shopArray.count)
print(shopArray.isEmpty)
print(shopArray.contains("Eggs"))
shopArray.append("Flour") //"["Eggs", "Milk", "Flour"]"
shopArray += ["Black Powder"] //"["Eggs", "Milk", "Flour", "Black Powder"]"
var first = shopArray[0]
shopArray[0] = "Six eggs"
//替换 不能用下表访问的形式去在数组尾部添加新项
shopArray[2...3] = ["Bananas","Apple"] //""["Six eggs", "Milk", "Bananas", "Apple"]"
print(shopArray)
//调用insert(_:at:)方法在某个具体索引值之前添加数据项
shopArray.insert("Maple Syrup", at: 0) //"["Maple Syrup", "Six eggs", "Milk", "Bananas", "Apple"]"
//调用remove(at:)方法来移除数组中的某一项
shopArray.remove(at: 0)
print(shopArray)
shopArray.removeLast()
print(shopArray)
//数组的遍历
for str in shopArray{
print(str)
}
for (index,value) in shopArray.enumerated() {
print("Item \(String(index+1)):\(value)")
}
//二.集合(Sets)
//Swift的Set类型被桥接到Foundation中的NSSet类
//一个类型为了存储在集合中,该类型必须是可哈希化的。一个哈希值是Int类型的,相等对象哈希值必须相等
//1.创建一个空的集合
var mySet = Set<Character>()
mySet.count
mySet.insert("a")
mySet = []
//用数组字面量创建集合
var set0:Set<String> = ["Rock","Classical"]
print(set0.isEmpty)
set0.insert("Jzaa")
set0.contains("Rock")
//你可以通过调用Set的remove(:)方法删除一个元素,如果该值是set的一个元素则删除该元素并返回被删除的元素之,如果不包含该值,则返回nil
set0.sorted()
//集合基本操作
//1.获取两个集合的值
let a:Set = [1,2,4,5,6,8]
let b:Set = [1,2,4,3,7,9]
//1).使用后intersection(_:)方法根据两个集合中都包含的值创建一个新的集合
let c = a.intersection(b).sorted(){$1 < $0}
print(c)
//2).symmetricDifference(_:)方法 获取不是a、b集合共同拥有的集合
let d = a.symmetricDifference(b)
//3).获取a、b集合中的所有不重复的值
let e = a.union(b)
//4).获取a、b集合中的a集合中不被b包含的值的集合
let f = a.subtracting(b)
//2.两个集合的比较
//一个集合是否是另一个集合的子集isSubset(of:)
//一个集合是否是另一个集合的夫集isSuperset(of:)
//使用isStrictSubset(of:)或者isStrictSuperset(of:)方法来判断一个集合是否是另外一个集合的子集合或者父集合并且两个集合并不相等
//使用isDisjoint(with:)方法来判断两个集合是否不含有相同的值(是否没有交集)
//三.字典
var dic = [Int:String]()
dic[16] = "16"
print(dic)
var dic1 = [1: "壹", 2: "二"]
for (key,value) in dic1 {
print(key,value)
}
for str in dic1.values {
print(str)
}