• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift集合类型

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 Swift语言提供数组和字典的集合类型

 

 Swift 语言里的数组和字典中存储的数据值类型必须明确 ,即数组中只能存放同类型的数据。

1: 数组 

数组的创建

var shoppingList: String[] = ["tset", "hell", “hell”]
var arrayInt:Int[] = [1, 3]

var arrayIntEx  = [55, 32]//使用推理类型

//空数组的创建

 var someInts = Int[]()
 println("\(someInts.isEmpty)")
//创建指定类型(Double)和个数(3)并设置初始值(0.0)
 var threeDoubles = Double[](count: 3, repeatedValue:0.0) 

数组的访问用下标访问。下标从0开始,注意不要越界了。

var arrayIntEx  = [1, 3]
arrayIntEx[1] = 99
println("\(arrayIntEx[1])")

数组的可修改性是依赖var或者let控制的

数组元素个数使用 count ,isEmpty检测是否位空数组

var arrayIntEx  = [1, 3]
let count = arrayIntEx.count
let bFlag = shoppingList.isEmpty
println("\(count)\n\(bFlag)")

数组元素追加  append 。必须是var类型数组,而且追加的元素类型要和数组类型一致。同时也可以用 += 操作

var arrayIntEx  = [1, 3]
arrayIntEx.append(8)
arrayIntEx += 9
arrayIntEx += [55, 66]
println("\(arrayIntEx[2])\n\(arrayIntEx[3])\n\(arrayIntEx[4])\n\(arrayIntEx[5])\n")

数组元素指定索引号插入 insert().insert在指定索引号的时候,最大为原有元素个数+现插入的元素个数-1,这样类似于在末尾添加。insert插入后,原有的元素后移动。

var arrayIntEx  = [1, 3]
arrayIntEx.insert(5, atIndex:2)
println("\(arrayIntEx)")

数组指定索引号删除 removeAtIndex

var arrayIntEx  = [1, 3, 9]
arrayIntEx.removeAtIndex(1)
println("\(arrayIntEx)")

 

数组遍历用 for in 

var arrayIntEx  = [1, 3, 9]
for item in arrayIntEx {
    println("\(item)")
}

如果要使用索引号和值,那用enumerate 

var arrayTest = ["ax", "bx", "sx", "sxx"]
for (index, value) in enumerate(arrayTest)
 {  println("Item: \(index + 1): \(value)") 
}

 数组拼接 如果两个数组类型一样,可以用+做拼接。当然结果的顺序和你拼接的时候的顺序时一致的

var arrayIntFirst = [2, 5]
var  arrayIntSecond = [6, 77]
var arrayRes =  arrayIntSecond +  arrayIntFirst
println("\(arrayRes)")

 

2:字典

Swift 的字典使用时需要具体规定可以存储键和值类型 ,字典存储时没有顺序的,它依赖于一个可以哈希的keyValue值来查找。估计它是把keyValue哈希后作为key建立的红黑二茬树来查找的。

字典使用 Dictionary<KeyType, ValueType>定义 .KeyType要求可以哈希的,ValueType在一个字典里类型必须一致

字典创建

var airports: Dictionary<Int, String> = [1: "yamide",2: "soga"]//显示类型说明
var dicDefault = [2:"xx", 33:"oo"]//使用了类型推理,这里比较特殊的是 2和3 不能用 2.0 和 3 ,它不支持类型的转换推理的
var namesOfIntegers = Dictionary<Int, String>()//空数组的创建
var dicEmpty = [:]

字典的可否修改时依靠var和let控制的

字典元素个数使用count 属性可以得到

var dicDefault = [2:"xx", 33:"oo"]
println("\(dicDefault.count)")

字典元素的更新。可以用下标关键字添加

var dicDefault = [2:"xx", 33:"oo"]
dicDefault[22] = "tt"
println("\(dicDefault)")

如果下标添加的key是字典里已经有的,那么它会update数据.

updateValue(forKey:)方法可以设置或者更新特定键对应的值 .如果keyValue没有就添加,字典中已经有则更新

 

var dicDefault = [1:"xx", 2:"oo"]
dicDefault[3] = "tt"
dicDefault.updateValue("sx", forKey:4)//add
dicDefault.updateValue("sbcd", forKey:2)//update

删除  removeValueForKey 

var dicDefault = [1:"xx", 2:"oo"]
dicDefault[3] = "tt"
dicDefault.updateValue("sx", forKey:4)
dicDefault.removeValueForKey(2)
println("\(dicDefault)")

字典遍历 可以使用for in 遍历字典键值对。以元组形式返回

var dicDefault = [1:"xx", 2:"oo"]
for(key, value)in dicDefault {
    println("key:\(key) value:\(value)\n")
}

字典可以用 values 返回所有值 keys返回所有关键字

var dicDefault = [1:"xx", 2:"oo"]
var keys = dicDefault.keys
var values = dicDefault.values
for key in keys {
    println("key:\(key)\n")
}
for value in values {
    println("value:\(value)\n")
}

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Taylor Swift - Red发布时间:2022-07-13
下一篇:
[Swift]LeetCode668.乘法表中第k小的数|KthSmallestNumberinMultiplicationTable ...发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap