首页 > 学院 > 开发设计 > 正文

[swift]6.0原声集合类型

2019-11-06 07:24:35
字体:
来源:转载
供稿:网友

6.1 swift中的数组集合

数组分成两种,一种是由常变量let的不可改变的数组,另一种是由变量var的改变的数组

6.2数组的声明和初始化

常量(let)数组定义

/*let + 变量名 + : + 变量类型*/let a:[Int] = [1,2,3,4,5]let a<Int> = [1,2,3,4,5]let a<Any> = [1,2,"swift"] /*Any可放置任何类型*//*let + 变量名*/let b = [1,2,3,4,5]/*let + 变量名 可以放置不同数据的类型*/let c = [1,2,"swift","swift_2"]/*空数组表示*/let d:[Int] = [] /*直接定义*/let d:[Int]() /*专有语法*/

repeatedValue的使用

let d = [count:5,repeatedValue:1.0]/*等价于*/let d = Array(count:5,repeatedValue:1.0)let d = [1.0,1.0,1.0,1.0,1.0]

变量(var)数组定义

/*var + 变量名 + : + 变量类型*/var a:[Int] = [1,2,3,4,5]var a<Int> = [1,2,3,4,5]/*var + 变量名*/var b = [1,2,3,4,5]/*var + 变量名 可以放置不同数据的类型*/var c = [1,2,"swift","swift_2"]/*空数组表示*/var d:[Int] = [] /*直接定义*/var d:[Int]() /*专有语法*//*repeatedValue的使用*/var d = [count:5,repeatedValue:1.0]/*等价于*/var d = Array(count:5,repeatedValue:1.0)var d = [1.0,1.0,1.0,1.0,1.0]

isEmpty返回的是布尔类型(Bool) 用来判断数组是否为空集, 空集返回true,反之返回false 数组名.isEmpty

let string_1: [Int]()PRint (string_1.isEmpty)let ssring_2: [Int] = [1,2,3]print (string_2.isEmpty)

count 计算数组的元素个数 数组名.count

var string_3: [Int] = [1,2,3,4,5]print (string_3.count)

数组的访问,插入,增加,修改和删除和遍历元素

数组访问

var array = ["a","b","c"]print (array[1]) /*访问第二个元素"b"*/

注意:元素排列是从0开始的

数组插入元素

数组名.append (“元素”)

var array = ["a","b","c"]array.append ("d") /*插入一个元素d*/print (array)

数组名.insert (“位置”, at: 元素)

var array = ["a","b","c"]array.insert ("0",at: "swift") /*将swift插入第一个位置*/print (array)

元素的修改 数组名[位置] = 元素

var array = ["a","b","c"]array [0] = "swift" /*将第一个元素改为swift*/print (array)

元素的删除 数组名.removeLast() 数组名.removeFirst() 数组名.remove(at:(位置))

var array = ["a","b","c","d"]array.remove(at:2) /*删除第二个元素*/print (array)array.removeLast() /*删除最后一个元素*/print (array)array.removeFirst() /*删除第一个元素*/print (array)

数组遍历

var array = ["a","b","c","d"]for elm in array { print (elm)}

6.4 字典声明与初始化

字典的概念和定义 (key:value)

6.5 字典声明与初始化

var dic1 = [] /*空字典*/var dic =["1":"苹果","2":"梨","3":"菠萝",4:"香蕉"]print (dic2)var dic3:[String: Int] = ["swift",1] /*元素与类型对应*/

6.6 可变字典

字典的改变 数组名[“key”] = “value”

var dic = ["1":"苹果","2":"梨","3":"菠萝","4":"香蕉"]dic["1] = "swift"print (dic)

updateValue对字典的改变

数组名.updateValue(“key”, forKey: “value”)

updateValue如果字典中有相同的元素,则会替换掉 如果字典中没有元素,则会增加一组元素

var dic =["1":"苹果","2":"梨","3":"菠萝",4:"香蕉"]dic.updateValue ("dff",forKey: "2") /*对字典已有的key进行value的修改*/print (dic)dic.updateValue ("www",forKey: "5") /*对字典没有key进行增加*/print (dic)

字典的删除

数组名[“key”] = nil 将字典中的value给清除掉

var dic =["1":"苹果","2":"梨","3":"菠萝",4:"香蕉"]dic["2"] = nilprint (dic)

6.7 字典遍历

key的遍历

var dic =["1":"苹果","2":"梨","3":"菠萝",4:"香蕉"]/*对dic中key进行输出*/for dic in dic.keys { print (dic)}

value的遍历

var dic =["1":"苹果","2":"梨","3":"菠萝",4:"香蕉"]/*对dic中value进行输出*/for dic in dic.values { print (dic)}

key和value同时遍历

“` var dic =[“1”:”苹果”,”2”:”梨”,”3”:”菠萝”,4:”香蕉”] for (key,value) in dic { print ((key,value)) }

for character in dic { print (dic) }

6.8 Swift中的Set集合

Set:集合 •集 NSSet 是一个无序对象的集合。集也有动态和静态之分,NSSet 是静态类型,成员不能被修改。NSMutableSet 是动态类型,成员可以被修改。 •集和数组不一样的是,它存储的每一个元素都是唯一的,没有完全相同的两个元素。所以数组中如果有两个相同的值,转换为集后只会有一个值。

6.9 Set声明和初始化

Set 型集合 ,不赋初值,指定数据类型为 String 型

let set1 = Set<String>() // 不指定数据类型,自动推断// 指定数据类型为 Int 型let set3:Set<Int> = [1, 3, 5, 7]

6.10 可变的Set集合

var swiftSet:Set = [1, 3, 5, 7]// 向集合中添加一个元素 swiftSet.insert(8) // 删除第一个元素swiftSet.removeFirst() // 删除指定元素swiftSet.remove(1) // 删除所有元素swiftSet.removeAll(keepCapacity: true) //修改元素 let nsSet:NSMutableSet = [2, 4, 6, 8]nsSet.setSet([1, 2, 3])

6.11 Set集合遍历

let nsSet:NSSet = [2, 4, 6, 8] // 用闭包遍历 nsSet.enumerateObjectsUsingBlock { (obj:AnyObject, stop:UnsafeMutablePointer<ObjCBool>) in print(obj)}// 用迭代遍历 let enu:NSEnumerator = nsSet.objectEnumerator() // AnyObject 后不要加 ?,否则会导致一直循环 while let obj:AnyObject = enu.nextObject() { print(obj) }// 条件遍历 let set:Set = nsSet.objectsPassingTest { (obj:AnyObject, stop:UnsafeMutablePointer<ObjCBool>) -> Bool in return (obj as! Int) > 5 ? true : false } print(set)

6.12 Set 集合运算

let nsCountedSet:NSCountedSet = NSCountedSet(array: [1, 2, 3]) nsCountedSet.addObject(2) nsCountedSet.removeObject(1)// 检索集合中指定元素的计数值let num1:Int = nsCountedSet.countForObject(1)// 检索集合中指定元素的计数值let num2:Int = nsCountedSet.countForObject(2)
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表