美文网首页
Swift-4 (集合类型)

Swift-4 (集合类型)

作者: 雨亦有种执着 | 来源:发表于2020-07-10 15:04 被阅读0次

一、Array(数组)

* 数组使用有序列表存储同一类型的多个值。相同的值可以多次出现在一个数组的不同位置中。
* swift中的Array桥接OC中的NSArray

事例:

// TODO: 创建一个空数组
var intArray:Array = [Int]()//创建一个指定类型为int的array
intArray.append(3)//数组添加元素
print(intArray)
intArray = []//虽然intArray为空了,但是元素类型还是Int
// TODO: 创建一个重复数据的数组
var threeArray = Array.init(repeating: 3, count: 3)
print(threeArray)
var fourArray = Array.init(repeating: 4, count: 3)
var fiveArray = threeArray + fourArray//🌟注意:两个数组相加合并,数组内的元素类型必须一致
// TODO: 通过自变量创建数组
var nameList:[String] = ["king","jone"]
print(nameList)
// TODO: 创建数组内元素类型不确定数组
var unkownList = [Any]()
unkownList.append(1)
unkownList.append("king")
unkownList.append(3)
print(unkownList)
// TODO: 获取数组中的元素
//下标获取
print(unkownList[1])
unkownList.first
//数组插值
unkownList.insert("kone", at: 0)
// TODO: 数组遍历
for obj in unkownList {
    print("forIN\(obj)")
}
unkownList.forEach { (obj) in
    print("forEach\(obj)")
}
for (index,value) in unkownList.enumerated() {
    print("forIN\(value)ForIndex\(index)")
}

二、Set(集合)

* 集合用来存储相同类型并且没有确定顺序的值。当集合元素顺序不重要时或者希望确保每个元素只出现一次时可以使用集合而不是数组
* swift中Set桥接OC中的NSSet
* 一个类型存储在集合中,该类型必须要提供一个计算哈希值的方法
* Set是无序的

事例:

//创建一个空的Set
var letters = Set<Character>()
letters.insert("a")//通过insert方法插入元素
print(letters)
//通过自变量创建Set
var nameSet:Set<String> = ["king","jone","birth"]
//访问Set元素
print("I have \(nameSet.count) name.")
if nameSet.isEmpty {
    print("I have none name")
} else {
    print("My name is \(nameSet.first!)")
}
if nameSet.contains("jone") {
    print("I have jone")
} else {
    print("I don't have jone")
}
//遍历一个集合
for obj in nameSet {
    print(obj)
}
//🌟因为set是无序的,要想set有序遍历,则需要使用sorf()
for obj in nameSet.sorted() {
    print(obj)
}

集合的操作

使用 intersection(_:) 方法根据两个集合的交集创建一个新的集合。
使用 symmetricDifference(_:) 方法根据两个集合不相交的值创建一个新的集合。
使用 union(_:) 方法根据两个集合的所有值创建一个新的集合。
使用 subtracting(_:) 方法根据不在另一个集合中的值创建一个新的集合。
使用“是否相等”运算符(==)来判断两个集合包含的值是否全部相同。使用 isSubset(of:) 方法来判断一个集合中的所有值是否也被包含在另外一个集合中。
使用 isSuperset(of:) 方法来判断一个集合是否包含另一个集合中所有的值。
使用 isStrictSubset(of:) 或者 isStrictSuperset(of:) 方法来判断一个集合是否是另外一个集合的子集合或者父集合并且两个集合并不相等。
使用 isDisjoint(with:) 方法来判断两个集合是否不含有相同的值(是否没有交集)。

事例:

var firstSet:Set = [1,3,5,7,9]
let secondSet:Set = [2,3,4,5,6]
let threeSet:Set = [0,6,7,8,9]
// 使用 intersection(_:) 方法根据两个集合的交集创建一个新的集合。
firstSet.intersection(secondSet)
// 使用 symmetricDifference(_:) 方法根据两个集合不相交的值创建一个新的集合。
firstSet.symmetricDifference(threeSet)
// 使用 union(_:) 方法根据两个集合的所有值创建一个新的集合。
firstSet.union(secondSet)
// 使用 subtracting(_:) 方法根据不在另一个集合中的值创建一个新的集合。
firstSet.subtract(threeSet)
let houseAnimals: Set = ["🐶", "🐱"]
let farmAnimals: Set = ["🐮", "🐔", "🐑", "🐶", "🐱"]
let cityAnimals: Set = ["🐦", "🐭"]
//使用“是否相等”运算符(==)来判断两个集合包含的值是否全部相同。
if houseAnimals == farmAnimals {
    print("true")
} else {
    print("false")
}
//使用 isSubset(of:) 方法来判断一个集合中的所有值是否也被包含在另外一个集合中。
if houseAnimals.isSubset(of: farmAnimals) {
    print("true")
} else {
    print("false")
}
//使用 isSuperset(of:) 方法来判断一个集合是否包含另一个集合中所有的值。
if farmAnimals.isSuperset(of: cityAnimals) {
    print("true")
} else {
    print("false")
}
//使用 isStrictSubset(of:) 或者 isStrictSuperset(of:) 方法来判断一个集合是否是另外一个集合的子集合或者父集合并且两个集合并不相等。
if houseAnimals.isStrictSubset(of: farmAnimals) {
    print("true")
} else {
    print("false")
}
if farmAnimals.isSuperset(of: cityAnimals) {
    print("true")
} else {
    print("false")
}
//使用 isDisjoint(with:) 方法来判断两个集合是否不含有相同的值(是否没有交集)。
if houseAnimals.isDisjoint(with: cityAnimals) {
    print("true")
} else {
    print("false")
}

三、字典

* 字典是一种无序的集合,它存储的是键值对之间的关系,其所有键的值需要是相同的类型,所有值的类型也需要相同。
* swift中字典桥接OC中的NSDictionary
//创建一个空的Dictionary
var emptyDic = [Int : String]()
emptyDic[16] = "king"//设置一个key为16,value为king插入dic中
emptyDic = [:]
print(emptyDic)
//通过字面量的方式创建Dictionary
var nameDic = ["name":"king","age":"18","birth":"20200809"]

gitHub地址:(https://github.com/kingbroad/SwiftStudy)(欢迎👏关注❤️)

相关文章

  • Swift-4 (集合类型)

    一、Array(数组) * 数组使用有序列表存储同一类型的多个值。相同的值可以多次出现在一个数组的不同位置中。 *...

  • iOS 深拷贝浅拷贝

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

  • #python基础入门#04

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

  • redis 基本使用

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

  • hive集合类型

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

  • 集合类型

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

  • 集合类型

    上一篇:控制流当前篇:集合类型下一篇:基础大杂烩 这一课我们将学习更加抽象的数据类型:集合类型 ,集合类型是用来存...

  • 集合类型

    集合类型 Swift提供了三种主要的集合类型,称为数组,集合和字典,用于存储值的集合。数组是有序的值集合。集合是唯...

  • 集合类型

    Swift提供了三种基本的几个类型,也就是我们熟知的数组Array,集合Set,字典dictionary,用来...

  • 集合类型

    1有序可重复 1.1Array数组 一旦定义,数组的大小不可变,其中的元素类型不可变 1.2 MutableLis...

网友评论

      本文标题:Swift-4 (集合类型)

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