Swift入门教程4-集合(NSArray Dictionary)
来源:互联网 发布:学汉语拼音的软件 编辑:程序博客网 时间:2024/06/14 05:58
原创Blog,转载请注明出处
建议开一个playground,然后敲几行代码看看结果
NSString,NSArray,NSMuableArray,NSMutableSet等集合类型
只不过使用的方式略有变化
例如:NSMutableDictionary
var mutableDic = NSMutableDictionary()//初始化一个空的NSMutableDictionarymutableDic.setObject("123",forKey:"first")这里对上述类型不再多讲解,后续会更新Foundation中上述集合类的使用方法
Swift语言提供了两种集合类型来存储集合数据:数组,字典
注意的是:swfit语言里,数组和字典里的数据类型必须明确
意味着Swift集合类型获取到的数据一定是匹配的类型。
1、数组
数组的构造
var 变量名:[数据类型]
var firstArray:[Int] = [1,2,3,4]//构造一个含有1 2 3 4 四个数据的int类型数组var secoundArray = [Int]()//构造一个空数组var thridArray = [Double](count:10,repeatedValue:1.5)//10个1.5的数组var sameThridArray = Array(count:10,repeatedValue:1.5)//使用Array构造函数来构造
属性count
返回数组中元素个数
var firstArray:[Int] = [1,2,3,4]//声明一个含有1 2 3 4 四个数据的int类型数组println(firstArray.count)//4属性isEmpty 检查数组是否为空
var firstArray:[Int] = [1,2,3,4]//声明一个含有1 2 3 4 四个数据的int类型数组println(firstArray.count)//4if !firstArray.isEmpty{println("Not empty")}
添加删除元素
append方法
var firstArray:[Int] = [1,2,3,4]//声明一个含有1 2 3 4 四个数据的int类型数组firstArray.append(5)//1 2 3 4 5insert(atIndex:)
在指定位置插入删除
var firstArray:[Int] = [1,2,3,4]//声明一个含有1 2 3 4 四个数据的int类型数组firstArray.insert(6,atIndex:1)//1 6 2 3 4firstArray.removeAtIndex(1)//1 2 3 4firstArray.removeLast()//删除最后一个元素
合并数组 +=
注意,合并数组的元素类型必须一致
var firstArray:[Int] = [1,2,3,4]//声明一个含有1 2 3 4 四个数据的int类型数组var secondArray:[Int] = [5,6]firstArray += secondArray
访问元素
通过下标访问
注意:和其他语言一样,通过下标访问不能越界
var firstArray:[Int] = [1,2,3,4]//声明一个含有1 2 3 4 四个数据的intfirstArray[2] = 10//1 2 10 4
数组遍历
使用for in 十分方便
var temp:Intfor temp in firstArray{println(temp)}
Debug描述
属性debugDescription和description
其中debugDescription会包含类型信息
2、字典
Dictionary
类似于C++中的map和OC中的NSMutableDictionary/NSDictionary
字典是key->value类型的,其中key唯一,key,value的类型都是唯一的
使用Dictiona<KeyType,ValueType>来定义
字典的构造
var firstDictionay:Dictionary<int,String> = [1:"first",2:"second"]
如果定义的时候初始化,可以不指明类型,但要注意key类型一致,value类型一致
var secondDictionary = [1:"first",2:"second"]var emptyDictionary = Dictionary<Int, String>()
属性count
返回字典中key->value对数
属性isEmpty
返回布尔值,字典是否为空
访问字典元素
下标访问
var firstDictionay:Dictionary<Int,String> = [1:"first",2:"second"]println("value of 1 is:\(firstDictionay[1])")firstDictionay[1] = "changed"println("value of 1 is:\(firstDictionay[1])")修改注意,通过下标访问返回的是可选类型,如下面的示例返回的是String?类型,即如果返回值存在,就是String,否则为nil(不存在)
var firstDictionary:Dictionary<Int,String> = [1:"first",2:"second"]firstDictionary[1] = "changed1"println("value of 1 is:\(firstDictionary[1]!)")var oldvalue = firstDictionary.updateValue("changed2",forKey:2)//返回修改之前的值,如果key不存在,则添加这一对元素println("value of 1 is:\(firstDictionary[2]!)\noldvalue\(oldvalue)" )
删除
removeValueForKey删除指定key对应的key-value对,如果vlaue存在返回value,不存在返回nil。即返回值也为可选类型
var firstDictionay:Dictionary<Int,String> = [1:"first",2:"second"]var oldValue = firstDictionay.removeValueForKey(1)
也可以将对应的key指向的value设为nil来删除元素
var firstDictionay:Dictionary<Int,String> = [1:"first",2:"second"]firstDictionay[1] = nil;println(firstDictionay.count)
遍历
var firstDictionay:Dictionary<Int,String> = [1:"first",2:"second"]for (key,value) in firstDictionay{println("key:\(key)->value:\(value)")}//也可以只遍历key或者valuefor key in firstDictionay.keys{}for value in firstDictionary.values{}
返回keyvalue数组
var firstDictionay:Dictionary<Int,String> = [1:"first",2:"second"]let keyArray = Array(firstDictionay.keys)let valueArray = Array(firstDictionay.values)
Debug描述
属性debugDescription和description
其中debugDescription会包含类型信息
例如
var firstDictionay:Dictionary<Int,String> = [1:"first",2:"second"]则
firstDictionay.debugDescription//1:"first",2:"second"
firstDictionay.description//1:first,2:second
22 0
- Swift入门教程4-集合(NSArray Dictionary)
- Swift中文教程 -- 集合类型(Array,Dictionary)
- swift-字典(Dictionary)
- Swift-字典(Dictionary)
- Swift-Dictionary
- swift入门教程(1)
- swift之数组(Array)、集合(Set)、字典(Dictionary)
- Swift语法_集合类型(Array.Set. Dictionary)
- Dictionary集合
- swift 学习笔记(4)-字典Dictionary
- swift_005(Swift的Dictionary 字典)
- Swift教程之NSArray
- swift NSArray(数组)
- Swift NSArray、NSMutableArray问题
- 字典与集合(Dictionary与Collection)
- 集合总结(Array,Set,Dictionary)
- uva10815 Andy's First Dictionary(集合)
- Swift 入门教程
- Android中碰到的小问题(1)
- MongoDB简单副本集的搭建
- kafka strom elasticsearch demo
- IO模式——同步(阻塞、非阻塞)、异步
- storm组件学习
- Swift入门教程4-集合(NSArray Dictionary)
- ORACLE中 schema 和 user 区别
- Qt登陆窗口,将登陆用户的信息显示到主界面中
- Ubuntu如何添加删除PPA
- HDU 1160 FatMouse's Speed[LIS]
- opnet 路由表
- [think in java]知识点学习
- UncaughtExceptionHandler捕捉异常,保存至SD卡中
- 2015腾讯校招 一面