swift4 收藏类型

  • swift 提供了array,set, dictionary 等三个收藏类型。
  • 创建一个空数组 array:就是数组
var someInts = [Int]()
print("数组里有\(someInts.count)个元素")
//会打印数组里有0个元素
someInts.append(7)
//现在someInts包含了一个值
someInts = []
//现在它是一个空数组了,他的类型也是依然int
创建有默认值得数组

swift 有一个数组初始化器,他能创建特定大小的数组

var threeDoubles = Array(repeatElement(7.7, count: 3))
//两个特定的数组还可以相加
var anotherThreeDoubles = Array(repeatElement(3.3, count: 3))
var sixDoubles = threeDoubles + anotherThreeDoubles
字符串数组
var shoppingList: [String] = ["Eggs","Milik"]
var list = ["book" ,"12"]

//下面代码可以简写数组
var shoppingList1 = ["apple","orange","banana"]
访问和修改数组
//count 能查找数组中的项目数
print("shoppinglist 数组有\(shoppingList.count)项目")
//数组是不是等于零的检查方式
if shoppingList.isEmpty{
    print("no one")
}else{
    print("数组不是空的")
}
//如果我想添加一个新成员的话会调用append(_:)注意他会添加到最后一个位置
shoppingList.append("phone")
//我还可以  += 来添加新成员
shoppingList += ["beer"]
索引来修改数组的值
shoppingList[0] = "hony"
//如果想特定的位置加成员,我想位置1 和 2的成员改掉
shoppingList[1...2] = ["butter","beef"]

//我要插进去一个成员的话呢用这个方法

shoppingList.insert("coffe", at: 3)
shoppingList.insert("tea", at: 3)

//相反remove(at:)方法来删掉特定位置的成员
shoppingList.remove(at: 3)
shoppingList.removeLast()
shoppingList.count

//for item in array 是遍历整个数组的
for nl_item in shoppingList{
    print(nl_item)
}
set 集合
//set 存储没有特定循序的,相同类型的不同的值
//创建和初始化一个空集
var letters = Set<Character>()
print("\(letters.count)")
//会打印零


letters.insert("m")
letters = []
//现在集又空了 ,属性依然是Set<Character>
创建一个字符串的集合
//var favoriteGenres: Set<String> = ["rock","hiphop","classical"]
//可以简写
var favoriteGenres: Set = ["rock","hiphop","classical"]

let oddDigits: Set = [1,3,5,7,9]
let evenDigits: Set = [0,2,4,6,8]
let singleDigitNumber: Set = [2,3,5,7]

oddDigits.union(evenDigits).sorted()
//最后的sorted()方法将排序集合元祖如果把它删除不会报错就是没有循序

//intersection 中文意思:交叉;十字路口;交集;交叉点 它就是交集!
oddDigits.intersection(evenDigits).sorted()

// subtracting:差集
oddDigits.subtracting(evenDigits).sorted()
字典
  • 创建一 个空字典
//其实他也与数组一样
var namesOfinteger = [Int: String]()
//上面一行代码可以这麼理解:我要顶一个字典,他key的类型是int,value的类型是string
namesOfinteger[27] = "is my age"
//下面这一行代码是空字典
namesOfinteger = [:]
  • 创建一个字符串字典
//[key1:value1, key2: value2, key3: value3]
//var airports: [String: String] = ["0998" : "喀什","0991":"乌鲁木齐","0995":"吐鲁番"]
//上面代码中数组是地区号
//简写的话可以这么些
var airports = ["0998" : "喀什","0991":"乌鲁木齐","0995":"吐鲁番"]
访问和修改字典
  • 数组一样用count 来查找其中的item数
print("the air ports dictionary contains \(airports.count) item")

//同样适用isEmptyE来检查是否空
if airports.isEmpty{
    print("the airport dictionary is empty.")
}else{
    print("the airport dictionary is not empty .")
}

//你拿字典的key 修改它的值
airports["0998"] = "喀什人民欢迎你"

if let oldValue = airports.updateValue("乌鲁木齐人民欢迎你", forKey: "0991"){
    print("the old value for 乌鲁木齐 was\(oldValue)")
}
//if let airportName = airports["0991"]{
//    print("the name of the airport is \(airportName)")
//}
  • 你可以遍历字典的每一个key和value
for (airportCode,airportName) in airports{
    print("\(airportCode):\(airportName)")
    
}

for airportCode in airports.keys{
    print("airportCode: \(airportCode)")
}

for airportName in airports.values{
    print("airportName:\(airportName)")
}
初始化
let airportCode1 = [String](airports.keys)
let airportName1 = [String](airports.values)
print(airportCode1)
print(airportName1)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • 由苹果官网翻译得来fork自https://github.com/letsswift/The-Swift-Prog...
    佛祖拿屠刀阅读 406评论 0 1
  • 53.计算字符 在字符串中获取字符值的数量, 可以使用字符串字符属性中的计数属性: let unusualMena...
    无沣阅读 1,060评论 0 4
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,016评论 4 62
  • 面临毕业,最后的我们,也是最无助的我们。 都说在大学要谈一场恋爱,因为进入社会你会发现再也没有上学时谈的恋爱纯真,...
    独独独角兽阅读 186评论 0 0
  • 美国野外纪录片《荒野求生》当中的主角-贝爷,一个号称生活在食物链最顶端的男人,靠着掌握的众多野外生存知识和技...
    番薯都督阅读 273评论 0 2