Swift_数组详解
Swift_数组详解
初始化
//初始化
fileprivate func testInit() {
//空数组
var array = [Int]()
print(array)
array = []
print(array)
array = Array<Int>()
print(array)
//有数值的数组
array = [Int](repeating: 0, count: 3)
print(array)
array = [0, 0, 0]
print(array)
/* print
[]
[]
[]
[0, 0, 0]
[0, 0, 0]
*/
}
查询相关信息
//查询相关信息
fileprivate func testQuerying() {
var array = ["XuBaoAiChiYu", "QQ", "1045214799"]
print("contains:\(array.contains("XuBaoAiChiYu"))") //是否存在这个元素
print("count:\(array.count)") //有多少个元素
print("capacity:\(array.capacity)") //有多少个元素
print("startIndex:\(array.startIndex)") //首坐标
print("endIndex:\(array.endIndex)") //尾脚标
print("first:\(array.first)") //首元素
print("last:\(array.last)") //尾元素
print("isEmpty:\(array.isEmpty)") //是否为空
//获取指定位置的元素
var temp = (array as NSArray).object(at: 0)
temp = array[0]
print("\(temp)")
//获取多个元素
let nRange : NSRange = NSMakeRange(0, 3)
let nIndexSet = IndexSet(integersIn: nRange.toRange() ?? 0..<0)
let ocArray = (array as NSArray).objects(at: nIndexSet)
print("\(ocArray)")
let range = (0 ..< 3)
let sArray = array[range]
print("\(sArray)")
//遍历
//只获取元素
for item in array {
print(item)
}
//遍历元素和所处的位置
for (index, value) in array.enumerated() {
print("\(index):\(value)")
}
/* print
contains:true
count:3
capacity:3
startIndex:0
endIndex:3
first:Optional("XuBaoAiChiYu")
last:Optional("1045214799")
isEmpty:false
XuBaoAiChiYu
[XuBaoAiChiYu, QQ, 1045214799]
["XuBaoAiChiYu", "QQ", "1045214799"]
XuBaoAiChiYu
QQ
1045214799
0:XuBaoAiChiYu
1:QQ
2:1045214799
*/
}
查找元素位置
//查找元素位置
fileprivate func testFindingObjects() {
let array = ["XuBaoAiChiYu", "QQ", "1045214799"]
// 查找元素
var index = array.index(of: "QQ")
print(index!)
// closures查找
index = array.index { (str:String) -> Bool in
if str == "QQ" {
return true
}
return false
}
print(index!)
// 简写
index = array.index{ str in return str == "QQ" }
print("index:\(index)")
index = array.index{ str in str == "QQ" }
print("index:\(index)")
index = array.index{ $0 == "QQ"}
print("index:\(index)")
/* print
1
1
index:Optional(1)
index:Optional(1)
index:Optional(1)
*/
}
增加元素
//增加元素
fileprivate func testAdding() {
var array = [String]()
print(array)
//增加一个
array.append("XuBaoAiChiYu")
print(array)
array += ["XuBaoAiChiYu"]
print(array)
//增加多个
array.append(contentsOf: ["QQ", "1045214799"])
print(array)
array += ["QQ", "1045214799"]
print(array)
//插入
array.insert("1045214799", at: 0)
print(array)
//插入多个
array.insert(contentsOf: ["1045214799", "QQ"], at: 0)
print(array)
/* print
[]
["XuBaoAiChiYu"]
["XuBaoAiChiYu", "XuBaoAiChiYu"]
["XuBaoAiChiYu", "XuBaoAiChiYu", "QQ", "1045214799"]
["XuBaoAiChiYu", "XuBaoAiChiYu", "QQ", "1045214799", "QQ", "1045214799"]
["1045214799", "XuBaoAiChiYu", "XuBaoAiChiYu", "QQ", "1045214799", "QQ", "1045214799"]
["1045214799", "QQ", "1045214799", "XuBaoAiChiYu", "XuBaoAiChiYu", "QQ", "1045214799", "QQ", "1045214799"]
*/
}
删除元素
//删除元素
fileprivate func testRemoving() {
var array = ["XuBaoAiChiYu", "QQ", "1045214799"]
print(array)
array = array + array + array + array
print(array)
var temp = array.removeFirst() //删除首个元素 并返回删除的元素
print(array)
print(temp)
array.removeFirst(2) //删除前两个元素
print(array)
temp = array.removeLast() //删除最后一个元素
print(array)
temp = array.remove(at: 0) //删除指定位置的元素
print(array)
array.removeSubrange((array.indices.suffix(from: 0))) //删除指定范围的元素
print(array)
array.removeAll() //删除所有元素
print(array)
/* print
["XuBaoAiChiYu", "QQ", "1045214799"]
["XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799"]
["QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799"]
XuBaoAiChiYu
["XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799"]
["XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ"]
["QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ"]
[]
[]
*/
}
替换元素
//替换元素
fileprivate func testReplacing() {
var array = ["XuBaoAiChiYu", "QQ", "1045214799"]
print(array)
array[1] = "iOS" // 替换指定位置的元素
print(array)
// 替换指定范围的元素
array[0..<3] = ["a", "b", "c"]
print(array)
let subRange: CountableRange<Int> = (array.indices.suffix(from: 1))
array.replaceSubrange(subRange, with: ["c","d","e"])
print(array)
/* print
["XuBaoAiChiYu", "QQ", "1045214799"]
["XuBaoAiChiYu", "iOS", "1045214799"]
["a", "b", "c"]
["a", "c", "d", "e"]
*/
}
排序
//排序
fileprivate func testSorting() {
var array = ["XuBaoAiChiYu", "QQ", "1045214799"]
print(array)
array = array.sorted()
print(array)
//自定义排序
func backwards(_ s1: String, _ s2: String) -> Bool {
return s1 > s2
}
array = array.sorted(by: backwards)
print(array)
//简写
array = array.sorted(by: { (s1: String, s2: String) -> Bool in
return s1 > s2
})
print(array)
array = array.sorted(by: <)
print(array)
/* print
["XuBaoAiChiYu", "QQ", "1045214799"]
["1045214799", "QQ", "XuBaoAiChiYu"]
["XuBaoAiChiYu", "QQ", "1045214799"]
["XuBaoAiChiYu", "QQ", "1045214799"]
["1045214799", "QQ", "XuBaoAiChiYu"]
*/
}
文件读和写
//文件读和写
fileprivate func testReadingAndWriting() {
//Document目录
let documents:[String] = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
let docDirPath = documents.first!
let path = (docDirPath as NSString).appendingPathComponent("test.plist")
let url = URL(fileURLWithPath: path)
var array = ["XuBaoAiChiYu", "QQ", "1045214799"]
//写
(array as NSArray).write(toFile: path, atomically: true)
(array as NSArray).write(to: url, atomically: true)
//读
array = NSArray(contentsOfFile: path) as! Array
print(array)
array = NSArray(contentsOf: url) as! Array
print(array)
/* print
["XuBaoAiChiYu", "QQ", "1045214799"]
["XuBaoAiChiYu", "QQ", "1045214799"]
*/
}
Swift_数组详解的更多相关文章
- Swift_字符串详解(String)
Swift_字符串详解(String) 类型别名 //类型别名 fileprivate func testTypeAliases() { let index = String.Index.self p ...
- 3.awk数组详解及企业实战案例
awk数组详解及企业实战案例 3.打印数组: [root@nfs-server test]# awk 'BEGIN{array[1]="zhurui";array[2]=" ...
- JavaScript进阶(十)Array 数组详解
JS array 数组详解 数组的声明方法 arrayObj = new Array(); 的数组 ,并且第一位是5 数组的运算(传地址) var t2=new Array(); t2[0]=1; t ...
- Java基础之 数组详解
前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...
- “全栈2019”Java第三十一章:二维数组和多维数组详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第三十章:数组详解(下篇)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第二十九章:数组详解(中篇)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第二十八章:数组详解(上篇)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Swift_字典详解
Swift_字典详解 点击查看源码 初始化 fileprivate func testInit() { //空字典 var dic = [String:String]() print(dic) dic ...
随机推荐
- 9、搜索 :ion-searchbar
/* ---html----*/ <ion-searchbar [(ngModel)]="searchQuery" (input)="getItems($event ...
- 基于CSS3的3D旋转效果
自从有了html5和css3,好多以前只能想想的华丽效果都可以上手实现了.3D 转换(个人认为3D变换更贴切^)就是其中之一.关于3D转换,可以阅读CSS3 3D transform变换,不过如此,文 ...
- json中定义数组
我们经常会看到在js中定义普通函数: function f1(a,b){ console.log(a+b); } f1(); 今天我们看一下如何在json里边定义函数并调用: var json = { ...
- js添加、修改、删除xml节点例子
version="1.0" encoding="gb2312"?> . <bookstore> . <book genre=" ...
- js中实现多态
最近读到一本书<JavaScript设计模式与开发实践>上,讲到js的多态,我在JavaScript高级程序编程里貌似都没有见过关于这个的详细讲解,所以想问问大家有没有什么推荐的文章或者博 ...
- git push & git pull 推送/拉取分支
git push与git pull是一对推送/拉取分支的git命令. git push 使用本地的对应分支来更新对应的远程分支. $ git push <远程主机名> <本地分支名& ...
- 夜色的 cocos2d-x 开发笔记 01
现在我们来实现在屏幕上出现一只飞机的效果. 首先我们要建立一个场景,显示在屏幕上,创建一个类,RunScence,现在你的项目目录应该是这个样子的. 之前没学过C++,.h文件我理解就是一个声明文件, ...
- CSS样式编写案例
1.制作如图三角形效果: 步骤一:将右侧盒子设置为相对定位 步骤二:在右侧盒子里面新建个子盒子,设置宽高相等,为正方形,绝对定位 步骤三:将绝对定位的盒子用CSS3旋转属性旋转 2.制定如图的序列号 ...
- 使用embeded tomcat进行嵌入式javaee开发-启动tomcat
昨天在网上研究了下关于将tomcat嵌入到主程序中进行运行,而不是像以前将一个web项目copy到tomcat中进行运行.之所以这样做的原因,即是因为项目部署到客户方,在进行更新的时候,需要手动地进行 ...
- 织梦CMS调用文章列表时,怎么显示短时间格式
问题描述:织梦在上传文章的时候,默认的上传文章的时间格式都是年.月.日.小时.分钟.秒的格式,怎么才能实现仅显示年.月.日的格式呢? 解决方法: [field:pubdate function=&qu ...