集合类型

集合

  1. 集合种类

    1. Arrays:是一个有序的数据集合
    2. Sets: 是一个无序无重复收据的数据集合
    3. Dictionaries: 是无序的键值对
  2. 优化
    如果我们确定集合是不可变的,那我们用let定义为常量,这时候编译器会对代码进行优化的。也是我们推荐的。

Array

  1. 清空数组
var a = [Int]()
a = []
print(a)
  1. 数组的创建
//1. 利用Array类创建重复元素数组 (如果一个数组中都是重复元素推荐用这种方法,更方便)
var a = Array(repeating: "3.1415926", count: 10)
print("a = \(a)")

//2. 通过相加创建数组 (要考虑数组中存储的类型是否一致,是否可以直接加)
var b = ["1","2"]
var b1 = Array(repeating: "3", count: 3)
var c = a + b + b1
print("c = \(c)")
  1. 数组中元素个数
var a = Array(repeating: 3, count: 3)
print(a.count)
  1. 判断是否是空
var a = Array(repeating: 3, count: 3)
print(a.isEmpty)
  1. 向后添加值
var a = Array(repeating: 3, count: 3)
a.append(5)
  1. 改变范围内数组中元素值
//改变范围内数组元素值
var a = [1,2,4,5,6]
a[2...] = [3,4,5]
print(a)

7.插值移除遍历

//插值
var b = [1,2,3,4,6]
b.insert(5, at: 4)
print(b)

//移除
b.remove(at: 4)
b.removeLast()
print(b)

//遍历
for value in b {
    print(value)
}

for (index,value) in b.enumerated() {
    print("index = \(index), value = \(value)")
}
  1. 和字串相关操作比较
1. 统计个数函数一样, count
2. 追加字符和追加元素函数一样, append()
3. 都可以直接用加法, +
4. 插值函数一样, insert()

Set

  1. 集合用来存储无序,并且不能重复,并且是同种类型的元素
  2. 集合的创建
// 1. 创建一个空集合
var a: Set<String> = []
var b = Set<String>()

//2. 创建一个有默认值的集合
var c: Set<String> = ["3","2"]
var d: Set = [2,3,5]
  1. 集合简单操作
var a: Set = ["1","2","3"]
//1. 集合中元素的个数
print(a.count)

//2. 判断是否为空
print(a.isEmpty)

//3. 插入值(这里不能用append,append代表有序)
a.insert("4")

//4. 移除值
a.remove("4")

//5. 是否包含某个元素
a.contains("4")

//遍历集合
for item in a {
    print(item,terminator:" ")
}
print(terminator:"\n")

for item in a.sorted() {
    print("\(item)",terminator:" ")
}
  1. 集合运算与判断
// 集合运算
let oddDigits: Set = [1, 3, 5, 7, 9]
let evenDigits: Set = [0, 2, 4, 6, 8]
let singleDigitPrimeNumbers: Set = [2, 3, 5, 7]

oddDigits.union(evenDigits).sorted()
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
oddDigits.intersection(evenDigits).sorted()
// []
oddDigits.subtracting(singleDigitPrimeNumbers).sorted()
// [1, 9]
oddDigits.symmetricDifference(singleDigitPrimeNumbers).sorted()
// [1, 2, 9]

//集合判断
let houseAnimals: Set = ["?", "?"]
let farmAnimals: Set = ["?", "?", "?", "?", "?"]
let cityAnimals: Set = ["?", "?"]

houseAnimals.isSubset(of: farmAnimals)
// true
farmAnimals.isSuperset(of: houseAnimals)
// true
farmAnimals.isDisjoint(with: cityAnimals)
// true
Dictionary
  1. 操作
var a = ["one":1, "two":2, "three":3, "four":4]

//1. 个数
print("count = \(a.count)")

//2. 是否是空
print("isEmpty = \(a.isEmpty)")

//3. 更新值 (存在就会返回旧值,并更新值。不存在就返回nil,并插入新值

print(a.updateValue(10, forKey: "one") ?? 0)
print(a)

//不存在就会返回新值
print(a.updateValue(999, forKey: "999") ?? 999)

//4. 移除(存在就移除值,并返回被移除的那个值,不存在就返回nil)
print(a.removeValue(forKey: "one") ?? 0)

  1. 遍历
var a = ["1":1, "2":2, "3":3]

//1. 遍历获取key,value
for (key,value) in a {
    print("key = \(key)---value = \(value)")
}

//2. 只是遍历key
for key in a.keys {
    print(key)
}

//3. 只是遍历value
for value in a.values {
    print(value)
}

//4. 获取keys,values
var b = [String](a.keys)
var c = [Int](a.values)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值