美文网首页
5.集合类型

5.集合类型

作者: LucXion | 来源:发表于2021-07-13 09:44 被阅读0次

Swift 语言提供数组(Array)、集合(Set)和字典(Dictionary)三种基本的集合类型用来存储集合数据。数组是有序数据的集。集合是无序无重复数据的集。字典是无序的键值对的集。

数组Array

var arr = [0,1,2,3,4,5]
arr[3...5] = [9,9,9]
// [0,1,2,9,9,9]
arr.insert(8, at: 1)
// [0,8,1,2,9,9,9]
for (index,item) in arr.enumerated() {
    print("index = \(index),item = \(item)")
}

集合Set :集合内的类型必须可hash化

你可以使用自定义的类型作为集合值的类型或者是字典键的类型,但需要使自定义类型遵循 Swift 标准库中的 Hashable 协议。遵循 Hashable 协议的类型需要提供一个类型为 Int 的可读属性 hashValue。由类型的 hashValue属性返回的值不需要在同一程序的不同执行周期或者不同程序之间保持相同。

因为 Hashable 协议遵循 Equatable 协议,所以遵循该协议的类型也必须提供一个“是否相等”运算符(==)的实现。这个 Equatable 协议要求任何遵循 == 实现的实例间都是一种相等的关系。也就是说,对于 a,b,c 三个值来说,== 的实现必须满足下面三种情况:

  • a == a(自反性)
  • a == b 意味着 b == a(对称性)
  • a == b && b == c 意味着 a == c(传递性)
//var fat : Set<String> = []
var fat : Set = ["a","b","c"]
//fat.insert("d")
if let _ = fat.remove("d") {
    print("fat has d")
}else {
    print("cann't fine d")
}
// 按序遍历 sorted
for item in fat.sorted(by: { (a, b) -> Bool in
    a > b
}) {
    print(item)
}

交集、并集

字典

var dic:[Int:String?] = [1:nil]
dic[2]="2"
dic.updateValue(nil, forKey: 3)//直接通过 字面量赋值 和 updateValue 赋值,如果没有键会自动新建
dic[4] = nil//这是删除键值对的操作,无法通过这个方式赋值
if let oldValue = dic.updateValue("1", forKey: 1) {
    // 是否会走这里不是判断oldValue是否有值,而是判断dic是否存在1这个key
    print(oldValue ?? "")
}

相关文章

  • 5.集合类型

    Swift 语言提供数组(Array)、集合(Set)和字典(Dictionary)三种基本的集合类型用来存储集合...

  • 四 数据类型

    1.数字类型 2.字符串类型 3.列表类型 4.元组类型 5.字典类型 6.集合类型

  • Redis学习笔记系列(三)——基本数据类型之字符串

    5. Redis数据类型 Redis支持字符串(string)、列表(list)、哈希(hash)、集合(set)...

  • Dart知识点汇总

    1.数据类型 2.字符串类型 3.list集合类型 4.map类型 5.类型判断 6.布尔类型 7.运算符 条件判...

  • iOS 深拷贝浅拷贝

    一,集合类型(NSArray、NSDictionary、NSSet等类型)与非集合类型(NSString等类型) ...

  • Java 基础

    1. 基础语法 2. 面向对象 3. 常用API、常用类型 4. 集合 5. 多线程(线程状态、线程安全、线程池、...

  • #python基础入门#04

    <组合数据类型> 集合类型序列类型(字符串,元组,列表)字典类型 集合类型:集合是多个元素的无序组合 特点:无序,...

  • redis 基本使用

    什么是redis 键值类型 String字符类型 map散列类型 list列表类型 set 集合类型 有序集合类型...

  • hive集合类型

    hive集合类型集合类型主要包括:array,map,struct等,hive的特性支持集合类型,这特性是关系型数...

  • 集合类型

    Collection 类型 Collection Type 数组(Array),字典(Dictionary),集合...

网友评论

      本文标题:5.集合类型

      本文链接:https://www.haomeiwen.com/subject/zqbrpltx.html