3. Swift 数组|字典|集合
在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 数组|字典|集合的更多相关文章
- Swift--集合类型 数组 字典 集合
数组 1.创建一个数组 var someInts = [Int]()空数组 someInts = []清空 var threeDoubles = Array(repeating: 0.0, count ...
- [Swift]遍历集合类型(数组、集合和字典)
Swift提供了三种主要的集合类型,称为数组,集合和字典,用于存储值集合. 数组是有序的值集合. 集是唯一值的无序集合. 字典是键值关联的无序集合. Swift中无法再使用传统形式的for循环. // ...
- Swift初探02 数组、集合、元组、字典
数组.集合.元组.字典 每一门语言基本都会有这些数据结构,swift也不例外,而作为一门现代的语言,swift提供了很多的现成的方法给我们选择. 一.数组 01 数组的定义 // 三种声明方式 var ...
- Swift学习—字符串&数组&字典
字符串 OC和Swift中字符串的区别 在OC中字符串类型时NSString,在Swift中字符串类型是String OC中字符串@"",Swift中字符串"" ...
- Swift字典集合
字典表示一种非常复杂的集合,允许按照某个键来访问元素.字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的. ...
- Swift语法基础入门二(数组, 字典, 字符串)
Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变 ...
- C#中数组、集合(ArrayList)、泛型集合List<T>、字典(dictionary<TKey,TValue>)全面对比
C#中数组.集合(ArrayList).泛型集合List<T>.字典(dictionary<TKey,TValue>)全面对比 为什么把这4个东西放在一起来说,因为c#中的这4 ...
- Swift入门篇-集合
一:数组 一:可变数组 定义:数组使用有序列表存储相同类型的多重数据. 格式: 第一种格式 var 变量: 类型[] = [变量值,变量值,...] 第二种格式 var 变量 =[变量值,变量值,.. ...
- Swift 学习- 05 -- 集合类型
// 集合类型 // swift 提供 Arrays , Sets 和 Dictionaries 三种基本的集合类型用来存储数据 , 数组(Arrays) 是有序数据的集, 集合(Sets)是无序无重 ...
随机推荐
- Bootstrap 固定定位(Affix)
来自:慕课网 http://www.imooc.com/code/5396 Affix 效果常见的有以下三种: ☑ 顶部固定 ☑ 侧边栏固定 ☑ 底部固定 固定定位--声明式触发固定定位 Affix ...
- 手机上的页面转换page slider
小伙伴们是不是经常在手机上见到“转场"的情况,手机上的页面转换已经不像pc上整体的页面跳转,很多都是利用动画平滑地在页面之间的切换. 那么如何来做页面之间的转换呢?首先要明确的是,所谓的 ...
- the major advances since the birth of the computer
COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION • The family concept: ...
- iOS开发中常用到的宏定义
1.首次启动判断: #define First_Launched @"firstLaunch" 2.ios7系统判断: #define IsIOS7 ([[[UIDevice cu ...
- home page
How To Set Your Home Page Step 1 – Navigate to Settings > Reading tab. Step 2 – Select A Static P ...
- Intelligencia.UrlRewriter在IIS 7.0下的完全配置攻略
在项目中,之前公司是使用IIS 7.0官方的URL重写模块,官方的使用说明请参见官方URLRewrite ,添加伪静态支持,后来经理问我有没有涉及伪静态,我说之前项目中我一直是用Intelligen ...
- Sql Server 性能优化之包含列
导读:数据数优化查询一直是个比较热门的话题,小生在这方面也只能算是个入门生.今 天我们就讲下数据库包含列这个一项的作用及带来的优化效果 引用下MSDN里面的一段解释: 当查询中的所有列都作为键列或非键 ...
- Vcenter server 5.5安装部署
1.安装VMware ESXi Server 虚拟主机安装方法请看本人博客 "实践记忆": http://www.cnblogs.com/zoulongbin/p/5896836. ...
- bbs网站 models
bbs网站 models #!/usr/bin/env python #_*_coding:utf-8_*_ from django.db import models from django.cont ...
- asp.net mvc4 System.Web.Optimization找不到引用
在MVC4的开发中,如果创建的项目为空MVC项目,那么在App_Start目录下没有BundleConfig.cs项的内容,在手动添加时在整个库中都找不到:System.Web.Optimizatio ...