// 集合: array、set、dictionary,称为泛型集合
// array: Array<Element>、 [Element]
var someInts: [Int] = [] // 空数组
someInts.append(123)
var threeDoubles = Array(repeating: 1.3, count: 3)
var anotherDoubles = [2.3,2.4]
var fiveDoubles = threeDoubles + anotherDoubles // 数组相加
//可以直接使用下标来获取数据值
//使用区间来替换部分数据值
fiveDoubles[3...4] = [1.2,4.5]
print(fiveDoubles)
// set 相同类型、没有确定顺序的值
/*
一个类型为了储存在集合中,该类型必须是可以哈希化的--也就说该类型必须提供一个方法来计算哈希值,一个哈希值
是一个Int类型,相同的对象必须要拥有相同的哈希值
默认基本数据类型和没有关联值的枚举成员值都是可哈希化的。
因此储存数据对象必须要实现哈希协议,Hashable
*/
// Set<Element> []
// set 类型需要显示声明
var letters = Set<Character>() // 空集合
letters.insert("a")
var likeString: Set<String> = ["aaaa","bbbb","ccccc"]
// 集合的基本操作: 交集、并集、差集等等
let oddDigits:Set = [1,3,5,7,9]
let enenDIgits:Set = [0,2,4,6,8]
let singleDIgits:Set = [2,3,5,7]
oddDigits.union(enenDIgits).sorted()//并集
oddDigits.intersection(enenDIgits).sorted() // 交集
oddDigits.subtracting(singleDIgits) // 差集,具有顺序
oddDigits.symmetricDifference(singleDIgits)// 并集-差集,即两者中除去公共的部分
//另外集合还有是否包含、子集、被包含等关系的函数
//字典: Dictionary,无序集合。储存键值对之间的关系
// Diction<Key,Value>, [Key:Value]
var namesOfInteger:[Int:String] = [:] //空字典
namesOfInteger[13] = "ssss" //添加键值对
//字典遍历
for (namesInt,namesString) in namesOfInteger{
print("\(namesInt),\(namesString)")
}
// 利用字典创建数组、集合
let one = [Int](namesOfInteger.keys)
let two = [String](namesOfInteger.values)
let three = Set<Int>(namesOfInteger.keys)
swift 集合
最新推荐文章于 2024-03-09 21:39:42 发布