Swift教程-集合

原创 2015年07月06日 23:36:22

Swift 有三种主要的集合类,数组字典集合
数组:有顺序的多个值的集合
集合:无顺序的多个值的集合
字典:无顺序的键值对

数组,集合,字典都是使用 generic collections实现的,具体的可以看这个

数组

数组声明

[Int] 的是Array < Int > 的缩写。多数情况下建议使用前者

var fullSyntax =  Array<Int>()
var shortSyntax = [Int]()

初始化数组

var shoppingList: [String] = ["Eggs", "Milk"]

访问数组

shoppingList[0] = "Six eggs"

访问多个元素

shoppingList[4...6] = ["Bananas", "Apples"]

插入元素

shoppingList.insert("Maple Syrup", atIndex: 0)
shoppingList.append("Flour")

移除元素

let mapleSyrup = shoppingList.removeAtIndex(0)

历遍数组

for item in shoppingList{
    println(item)
}

集合

集合声明

var letters = Set<Character>()

初始化集合

var favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"]

插入集合

favoriteGenres.insert("Jazz")

遍历集合

for genre in favoriteGenres {
    println("\(genre)")
}

两个集合操作

对两个集合的交并补操作
这里写图片描述

  • union(_:) 两个集合的并集
  • subtract(_:) 两个集合的交集的对于两者交集取补集
  • intersect(_:)两个集合的交集
  • exclusiveOr(_:) 对b取并集的补集
let oddDigits: Set = [1, 3, 5, 7, 9]
let evenDigits: Set = [0, 2, 4, 6, 8]
let singleDigitPrimeNumbers: Set = [2, 3, 5, 7]

sorted(oddDigits.union(evenDigits))
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
sorted(oddDigits.intersect(evenDigits))
// []
sorted(oddDigits.subtract(singleDigitPrimeNumbers))
// [1, 9]
sorted(oddDigits.exclusiveOr(singleDigitPrimeNumbers))
// [1, 2, 9]

两个集合的比较

这里写图片描述

let a:Set = [1,2,3,4,5,6,7,8,9]
let b:Set = [1,2]
let c:Set = [7,8,9]
let d:Set = [1,2]
操作符 意义 例子
== 元素全部相同 b=d
isSubsetOf(_:) (操作数)是否为(参数)的子集 b.isSubsetOf(a)
isSupersetOf(_:) (操作数) 是否为(参数)的全集 a.isSupersetOf(b)
isDisjointWith(_:) 两个集合是否有交集 a.isDisjointWith(c)

字典

创建字典

var namesOfIntegers = [Int: String]()

访问字典

airports["LHR"] = "London"

更新元素

if let oldValue = airports.updateValue("Dublin Airport", forKey: "DUB") {
    println("The old value for DUB was \(oldValue).")
}

遍历字典

//键值一起
for (airportCode, airportName) in airports {
    println("\(airportCode): \(airportName)")
}
//根据键
for airportCode in airports.keys {
    println("Airport code: \(airportCode)")
}
//根据值
for airportName in airports.values {
    println("Airport name: \(airportName)")
}

复制所有的键/值

let airportCodes = [String](airports.keys)
// airportCodes is ["YYZ", "LHR"]

let airportNames = [String](airports.values)
// airportNames is ["Toronto Pearson", "London Heathrow"]

集合类型-苹果官方文档

版权声明:本文为博主原创文章,未经博主允许不得转载。

Silver:用Swift编写iOS、Android和.NET应用

摘要:Silver编译器可以为.NET CLR、Java/Android JVM和Cocoa运行时提供编译工作,尽管支持iOS、Android和Windows平台,但却有着非常明确的非跨平台定位,致力...
  • u010739551
  • u010739551
  • 2015年03月02日 10:02
  • 477

iOS 8 Metal Swift 教程(二):3D图形

在开始之前,你可以先参考一下本系列的第一篇教程: - iOS 8 Metal Swift教程(一) :开始学习 在本篇教程中,你将应用到3D图形中的一系列矩阵变换,并会学习到如下内容: ...
  • sunyazhou13
  • sunyazhou13
  • 2014年11月07日 10:24
  • 932

中文版 Apple 官方 Swift 教程《The Swift Programming Language》

Swift 初见 本页内容包括: 简单值(Simple Values)控制流(Control Flow)函数和闭包(Functions and Closures)对象和类(Objects ...
  • investzhu
  • investzhu
  • 2014年06月13日 19:37
  • 1698

swift教程

http://www.runoob.com/swift/swift-tutorial.html
  • huangtingting_swift
  • huangtingting_swift
  • 2016年09月03日 19:31
  • 31

Swift教程

如果你以Objective-C为基础,进行学习Swift,本教程会起到事半功倍的效果,如果你没有编程的基础,那么本教程不适合你,请节省时间 本教程也非书籍一般,按部就班的学习,而是将一些Swift需...
  • Xoxo_x
  • Xoxo_x
  • 2016年10月10日 23:39
  • 599

iOS游戏框架Sprite Kit基础教程——Swift版上册第二章-pdf

[@2015-2-0记录一下自己的脚印:啊哈哈哈,找的就是它了iOS游戏框架Sprite Kit基础教程——Swift版上册第二章-pdf,要的赶紧吧,不晓得分享人有没有取消分享。。。 下载地址:ht...
  • xiaomengku_it
  • xiaomengku_it
  • 2015年06月16日 20:06
  • 531

Swift 教程:快速入门

下面文章是基于 Xcode6-beta 5.
  • totogo2010
  • totogo2010
  • 2014年10月22日 16:11
  • 8477

Swift完整教程系列

引言本文只是章节说明,没有具体内容。本教程为本人为所在公司的团队开发人员培训所准备的材料,这里详细地整理并写成文章,巩固自己的知识,也希望能让支持我的朋友们、同学们都能够快速学习Swift。温馨提示本...
  • woaifen3344
  • woaifen3344
  • 2015年10月30日 11:53
  • 3932

Swift教程-基本类型

常量和变量概括Swift只包含变量(var),常量(let)两种值。对于两者而言,相同点都是对象的引用,不同点在于常量的值不可以在声明后不可改变,变量则可以//变量 var welcome = "He...
  • u013230511
  • u013230511
  • 2015年07月06日 20:14
  • 299

Swift教程(一)

目录 基础部分 常量和变量 声明常量和变量 类型标注 常量和变量的命名 输出常量和变量 注释 分号 整数 整数范围 Int UInt 浮点数 类型安全和类型推断 数值型字面量 数值型...
  • lixin2013
  • lixin2013
  • 2015年07月30日 13:48
  • 181
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift教程-集合
举报原因:
原因补充:

(最多只允许输入30个字)