在OC中数组,字典,集合有自己的表示方法,分别是Array,Dictionary,Set 与 String 都属于数值类型变量,他们都属于结构体。 使用简介灵活多变,个人感觉可读性变差了很多,用起来由点别扭,还需要慢慢适应。 基本上功能都是照办OC的,主要包括创建,增,删,改,查,遍历。下面从数组开始说起。

1. Array ,数组,线性机构,按顺序存储结构,有对应的下表标

创建方式贼多,大家根据自己的喜好随便选一种吧,

var firstArray:Array<Int> = Array<Int>()

var secondArray:Array = Array<Int>()

var thirdArray = Array<Int>()

var fourthArray:Array<Int> = Array()

var fivethArray:Array<Int> = [Int]()

var sixthArray:[Int] = [Int]()

var seventhArray:[Int] = []

var eighthArray = [1,2,3,4,5,5,6]

var ninethArray:[Int]   //最后一种只生成没有初试化

2. 增加数据  append()    +      =

firstArray.append(250)      OC:    addObject:

firstArray[0] = "500"

firstArray += ["180","360","720","a","g"]  //添加另外一个数组

firstArray.count

firstArray.isEmpty

3.  插入元素  inset()

firstArray.insert("iphone6 plus",at Index:1)

其它元素需要后移动,比较消耗性能

4. 删除元素  removeAtIndex(1)   它的返回值为移除的数组元素类型

var res: String = firstArray.removeAtIndex(1)

res = firstArray.removeFirst()

res = firstArray.removeLast()

var range = Range(start:0,  end:2)

firstArray.removeRange(Range)

5. 修改元素

通过下标直接修改

shoppingList[1] = "price"

shoppingList.removeAll()

6. 从数组中获取部分元素同时声称一个数组

var subList = shoppingList[0..<3]

/**遍历*/

for elements in subList {

print(elements)

}

for var i = 0; i < subList.count;i++ {

print("第\(i)个元素是\(subList[i])")

}

for (index,value) in subList.enumerate() {

print("第\(index) \(value)")

}

subList

subList[0]

2. 字典部分,创建方式

var dictionary1:Dictionary<String,Int> = Dictionary<String,Int>()

var dictionary2 = Dictionary <String,Int>()

var dictionary3:Dictionary  = Dictionary<String,Int>()

var dictionary4:Dictionary<String,Int> = Dictionary()

var dictionary5:Dictionary<String,Int> = [String:Int]()

var dictionary6:Dictionary<String,Int> = ["age":23,"age2":18]

var dicitonary7 = ["age":18,"age2":33]

//不能直接使用 nil 作为变量,但是可以使用可选值座位值

var dictionary8:[String:Int?] = ["age":23,"age":nil]

//未初始化,只申明

var dictionary9:[String:Int]

3. 基本操作方法:

/**操作字典的方法*/

var airports:[String:String] = ["PEK":"Beijing airport","CAN":"GuangzhouBaiYun airport","SHA":"ShangHaiHongQiao airport"]

airports.count

airports["SZA"] = "Baoan airport"

//如果eky不存在就是添加,如果存在就是修改

airports.count

4 . updataValue( value:xxx  ,forkey:xxx) ,注意Swift key必须写成String类型

airports.updateValue("ShangHaiPuDong", forKey: "PVG")

airports.count

airports.isEmpty

airports["TRA"] = "DaNei airport"

/**删除机场*/

airports.count

airports["SZA"] = nil

airports.count

5 .删除字典元素,注意不管是删除,还是添加过程中,都可以返回一个可选值Value

removeValueForKey  removeAll

if let airport = airports.removeValueForKey("TRA"){

print("airport: \(airport)delete successfully")

}else {

print("meiyou duiying jichang")

}

6. 获取字典中所有的keys 和所有的Values,使用数组类型进行强转

let  airportCodes = [String] (airports.keys)

let  airportValues:[String] = [String] (airports.values)

//集合部分 Set,它具有无序性和唯一性,个人感觉基本没怎么用,除了网络并发请求外

1. Standard style

var letters:Set<Character> = Set<Character>()

其余写法大家自己琢磨去吧,之要不报错基本都行,写法太多了,和字典数组都差不多。

其实只要保证左右两边结合起来能确定 它自身的类型(Set,Dictionary,Array),元素类型(Int,String,Character),然后右边必须有一个() 或者[] 就能满足要求了

2. 增,删,交,并,差,异或

var musics:Set<String> = ["Rock","Classical","Jazz"]

music.isEmpty

music.count

music.insert("Jazz")

if let removeMusic = musics.remove("Jazz")  {

print ("\(removeMusic) delete successfully")

} else {

print("element is not exist")

}

musics.contains("rock")

for music in musics {print(music)}

//排序

for music  in music.sort() { print(music) }

let oddDigits:Set = [1,3,4,5,6]

let evemDigits:Set = [0,1,3,4,5]

//union 并集

var newNumbers = oddDigits.union(evenDigits)

print(newNumbers)

//intersect 交集

newNumbers = oddDigits.intersect(evenDigits)

//subtract 差集

newNumbers = oddDigits.subtract(evenDigits)

//异或集合,把不相同的部分提取出来

newNumbers = oddDigits.exclusiveOr(evenDigits)

记住好四个单词, uinion,intersect,subract,exclusiveOr 就好了

3. Swift 数组|字典|集合的更多相关文章

  1. Swift--集合类型 数组 字典 集合

    数组 1.创建一个数组 var someInts = [Int]()空数组 someInts = []清空 var threeDoubles = Array(repeating: 0.0, count ...

  2. [Swift]遍历集合类型(数组、集合和字典)

    Swift提供了三种主要的集合类型,称为数组,集合和字典,用于存储值集合. 数组是有序的值集合. 集是唯一值的无序集合. 字典是键值关联的无序集合. Swift中无法再使用传统形式的for循环. // ...

  3. Swift初探02 数组、集合、元组、字典

    数组.集合.元组.字典 每一门语言基本都会有这些数据结构,swift也不例外,而作为一门现代的语言,swift提供了很多的现成的方法给我们选择. 一.数组 01 数组的定义 // 三种声明方式 var ...

  4. Swift学习—字符串&数组&字典

    字符串 OC和Swift中字符串的区别 在OC中字符串类型时NSString,在Swift中字符串类型是String OC中字符串@"",Swift中字符串"" ...

  5. Swift字典集合

    字典表示一种非常复杂的集合,允许按照某个键来访问元素.字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的. ...

  6. Swift语法基础入门二(数组, 字典, 字符串)

    Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变 ...

  7. C#中数组、集合(ArrayList)、泛型集合List<T>、字典(dictionary<TKey,TValue>)全面对比

    C#中数组.集合(ArrayList).泛型集合List<T>.字典(dictionary<TKey,TValue>)全面对比 为什么把这4个东西放在一起来说,因为c#中的这4 ...

  8. Swift入门篇-集合

    一:数组 一:可变数组 定义:数组使用有序列表存储相同类型的多重数据. 格式: 第一种格式 var 变量: 类型[] = [变量值,变量值,...] 第二种格式 var 变量 =[变量值,变量值,.. ...

  9. Swift 学习- 05 -- 集合类型

    // 集合类型 // swift 提供 Arrays , Sets 和 Dictionaries 三种基本的集合类型用来存储数据 , 数组(Arrays) 是有序数据的集, 集合(Sets)是无序无重 ...

随机推荐

  1. window dos命名

    dos命令从c盘进入d盘c:\>d:敲回车 >dir 查看文件夹中文件运行java程序,最好先进入文件夹:然后javac Hello.javajava Hello

  2. Algorithm | Tree traversal

    There are three types of depth-first traversal: pre-order,in-order, and post-order. For a binary tre ...

  3. mysql5.5手册读书日记(1)

    <?php //mysql语句使用技巧 /* * 我的数据库是5.5.2 * * 查询当前用户的登陆的名字 * select user(); * * 查询当前mysql服务器时间和服务器版本 * ...

  4. Android WebApp开发使用Genymotion连接Fiddler2/Charles代理调试

    1.       目的 在模拟器的浏览器或app hybrid开发中遇到chrome调试代码为线上代码或者混淆代码时,可以利用fiddler/charles为genymotion配置代理, 可以方便的 ...

  5. Web标准和搜索引擎优化技术

    1.Web标准不是某一个标准,而是一系列标准的集合.出来网页内容之外,网页主要由三部分组成:结构(Structure).表现(Presenttation)和行为(Behavior).对应的标准也分三方 ...

  6. nodejs 80端口监听失败及NODE_PATH不起作用的问题

    nodejs做web服务器,打开80时报错:Error: listen EACCES 0.0.0.0:80 80端口监听失败,是因为1024以下的端口需要root权限,需要sudo或su之后执行.但这 ...

  7. Swift声明参考

    一条声明可以在你的程序里引入新的名字和构造.举例来说,你可以使用声明来引入函数和方法,变量和常量,或者来定义 新的命名好的枚举,结构,类和协议类型.你也可以使用一条声明来延长一个已经存在的命名好的类型 ...

  8. HTML添加多媒体或音乐

    1,添加多媒体 <embed src="多媒体文件地址" width="多媒体的宽度" height="多媒体的高度" autosta ...

  9. 配置fabric-crashlytics教程

    1. 注册账户 登录网站  https://try.crashlytics.com/ 来注册新的账户,审核通过时间为几个小时或者1到2天不等.然后注册时候输入的邮箱就会收到如下的邀请涵 2. acco ...

  10. C++ 中的类构造函数 & 析构函数

    类的构造函数 类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行. 构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void.构造函数可用于为某些成员变量设置 ...