美文网首页
swift 集合类型(数组、集合、字典)

swift 集合类型(数组、集合、字典)

作者: 皆为序幕_ | 来源:发表于2018-11-14 18:25 被阅读0次

数组

  • 初始化
//创建一个空数组
let array = [Int]()
//创建具有默认值的数组
let arr1 = Array(repeating: 2, count: 3)  //[2, 2, 2]
//用数组字面量构造数组
let arr2: [String] = ["a","b"]
var arr3 = ["a","b"]
  • 元素个数
// 获取数组元素个数
arr2.count
//判断数组count是否等于0
if arr2.isEmpty {
    print("The arr2 is empty.")
}
  • 添加新元素
//尾部添加
var arr = [Int]()
arr.append(5)
print(arr)  //[5]

//指定索引添加
var arr2: [String] = ["a","b","c","d","e","f","g"]
arr2.insert("C", at: 2)
print(arr2)
//["a", "b", "C", "c", "d", "e", "f", "g"]
  • 拼合
var arr = [Int]()
let arr1 = Array(repeating: 2, count: 3)
arr += arr1 // arr:[2, 2, 2]
  • 通过数组索引检索值
let arr2: [String] = ["a","b"]
var value = arr2[0]
  • 元素修改
var arr2: [String] = ["a","b"]
arr2[0] = "c"
print(arr2)  //["c", "b"]


var arr3: [String] = ["a","b","c","d","e","f","g"]
arr3[2...5] = ["x","y","z"]
print(arr3)  //["a", "b", "x", "y", "z", "g"]
  • 元素删除
var arr: [String] = ["a","b","c","d","e","f","g"]
arr.remove(at: 2)
print(arr)  // ["a", "b", "d", "e", "f", "g"]

arr.removeLast()
print(arr)  // ["a", "b", "d", "e", "f"]

arr.removeAll()

数组遍历

var arr: [String] = ["a","b","c"]
for item in arr {
    print(item)
}
for (index ,value) in arr.enumerated() {
    print("\(index)---\(value)")
}
//a
//b
//c
//0---a
//1---b
//2---c

集合

  • 初始化
//创建一个空集合
var set = Set<String>()
//用数组字面量构造
var set :Set<String> = ["a","b","c"]
var set :Set = ["a","b","c"]

  • 元素个数
// 获取数组元素个数
set.count
//判断数组count是否等于0
if set.isEmpty {
    print("The set is empty.")
}
  • 添加新元素
var set :Set<String> = ["a","b","c"]
set.insert("d")
print(set)
//["b", "a", "d", "c", "e"]
  • 元素删除
var set :Set<String> = ["a","b","c"]
set.remove("b")
print(set)  //["c", "a"]

set.removeAll()

集合操作

let set :Set<String> = ["a","b","c"]
let set1 :Set<String> = ["c","v","e","a","f","d"]
//交集
print(set.intersection(set1))
//["c", "a"]

//并集
print(set.union(set1))
//["e", "v", "b", "c", "a", "d", "f"]

//去除交集
print(set.symmetricDifference(set1))
//["e", "f", "v", "b", "d"]

//一个值不在指定集中的新集
print(set.subtracting(set1))
//["b"]

//判断一个集合中的值是否也被包含在另外一个集合中
print(set1.isSubset(of: set))   //false

//判断一个集合中包含另一个集合中所有的值
print(set1.isSuperset(of: set)) //false

//判断一个集合是否是另外一个集合的子集合或者父集合并且两个集合并不相等
print(set1.isStrictSubset(of: set))   //false

//判断两个集合是否不含有相同的值(是否没有交集)
print(set1.isStrictSubset(of: set))   //false

集合遍历

for value in set {
    print(value)
}
//a  c  b

//集合先排序在遍历
for genre in set.sorted() {
    print("\(genre)")
}

字典

  • 初始化
//构造语法
var dic = [Int: String]()
//创建具有默认值的字典
var dic : [String:String] = ["key":"value"]
var dic = ["key":"value"]

  • 元素个数
// 获取数组元素个数
var dic : [String:String] = ["key":"value","key1":"value1"]
print(dic.count)

//判断数组count是否等于0
if dic.isEmpty {
    print("the dic is empty")
}

  • 添加元素
var dic : [String:String] = ["key":"a","key1":"b"]
dic["key2"] = "c"
print(dic)  //["key1": "b", "key2": "c", "key": "a"]

  • 修改元素
//使用下标语法来改变特定键对应的值
var dic : [String:String] = ["key":"a","key1":"b"]
dic["key1"] = "B"
print(dic)  //["key": "a", "key1": "B"]
var dic : [String:String] = ["key":"a","key1":"b"]

//如果有对应的key,那么会直接更新对应的value,且返回旧值
let oldValue = dic.updateValue("C", forKey: "key1")
print(dic)  //["key1": "C", "key": "a"]
print(oldValue)    //Optional("b")

//如果没有对应的key,那么会直接添加元素,返回nil
let oldValue1 = dic.updateValue("D", forKey: "key2")
print(dic)  //["key1": "C", "key2": "D", "key": "a"]
print(oldValue1)    //nil

  • 删除
var dic : [String:String] = ["key":"a","key1":"b"]
dic["key1"] = nil
print(dic)  //["key": "a"]
dic.removeValue(forKey: "key1")
print(dic)  //["key": "a"]

  • 字典遍历
let dic : [String:String] = ["key":"a","key1":"b"]
for (key,value) in dic {
    print("\(key)---\(value)")
}    //key---a    key1---b

for key in dic.keys {
    print("\(key)")
}    //key  key1

for value in dic.values {
    print("\(value)")
}    //a  b

字符串、数组、和字典类型的赋值与复制行为

Swift 中,许多基本类型,诸如String,Array和Dictionary类型均以结构体的形式实现。这意味着被赋值给新的常量或变量,或者被传入函数或方法中时,它们的值会被拷贝。

Objective-C 中NSString,NSArray和NSDictionary类型均以类的形式实现,而并非结构体。它们在被赋值或者被传入函数或方法时,不会发生值拷贝,而是传递现有实例的引用。

相关文章

  • Swift-day5---集合类型--数组,集合,字典

    Swift专栏---集合类型.数组,集合,字典!!!喜欢的小伙伴,可以关注我. * 数组 * 集合 * 字典 Sw...

  • Swift教程之集合类型

    集合类型 Swift有三种集合类型:数组、集合和字典。数组是有序集,集合是值唯一的无序集,字典是键值对的无序集。 ...

  • 第4章:集合类型

      Swift提供三种主要的集合类型 ,称为数组,集合和字典; 数组是有序的值集合,集合是唯一值的无序集合,字典是...

  • Swift集合类型扩展

    对于Swift来说, 数组(Array)、字典(Dictoinary)、集合(Set) 统称集合类型(Collec...

  • Swift3.x - 集合类型

    集合类型的介绍Swift中提供三种集合类型:数组(Arrays)、集合(Sets)和字典(Dictionaries...

  • Swift5.1集合类型

    4.集合类型 集合类型:Swift 语⾔提供数组(Array)、集合(Set)和字典(Dictionary)三种基...

  • 4、Swift集合类型

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

  • Swift - 集合类型

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

  • Swift编程五(集合类型)

    案例代码下载 集合类型 Swift提供三种主要的集合类型,为数组,集合和字典,用于存储集合值。数组是有序的值集合。...

  • 集合类型

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

网友评论

      本文标题:swift 集合类型(数组、集合、字典)

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