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_数组详解的更多相关文章

  1. Swift_字符串详解(String)

    Swift_字符串详解(String) 类型别名 //类型别名 fileprivate func testTypeAliases() { let index = String.Index.self p ...

  2. 3.awk数组详解及企业实战案例

    awk数组详解及企业实战案例 3.打印数组: [root@nfs-server test]# awk 'BEGIN{array[1]="zhurui";array[2]=" ...

  3. JavaScript进阶(十)Array 数组详解

    JS array 数组详解 数组的声明方法 arrayObj = new Array(); 的数组 ,并且第一位是5 数组的运算(传地址) var t2=new Array(); t2[0]=1; t ...

  4. Java基础之 数组详解

    前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...

  5. “全栈2019”Java第三十一章:二维数组和多维数组详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. “全栈2019”Java第三十章:数组详解(下篇)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. “全栈2019”Java第二十九章:数组详解(中篇)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. “全栈2019”Java第二十八章:数组详解(上篇)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. Swift_字典详解

    Swift_字典详解 点击查看源码 初始化 fileprivate func testInit() { //空字典 var dic = [String:String]() print(dic) dic ...

随机推荐

  1. vue2.0 饿了么项目学习总结

    最近在GitHub上发现一个基于vue2.0的饿了么项目.本着互联网的分享精神,现在将我自己所理解的,所总结的经验分享给大家.本篇文字我将从学习的角度向大家分享. 在学习本项目之前我已经将vue2.0 ...

  2. IDEA中一个工程多个模块(module)分别提交到不同的git服务器

    说明:本文档适用于一个工程多个模块的项目,每个模块对应不同的git服务器地址.     一.将本地项目导入到git服务器   1.打开 File -> Settings,选择 Version C ...

  3. python的返回值

    1.返回值的作用 函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值.函数返回的值被称为返回值.在函数中,可使用return语句将值返回到调用函数的代码行.返回值让你能够将程序的大 ...

  4. spynner解析中文页面,应该显示中文字符的地方都是?的解决方案

    这个是底层的QtWebKit相关库里 用的是Qt的QString spynner在将QString转为Python的通用字符串时,没有考虑到中文编码这一块的问题. Python27\Lib\site- ...

  5. 使用jquery去掉时光轴头尾部的线条

    一.前言:以前做类似时光轴的结构,几乎都是一条灰色线飞流直下,没有尽头.今天这个线条是从第一个圆点到最后一个圆点,那么问题来了,内容的高度还不是固定的,线条的长度怎么确定?怎么就能刚刚好从第一个点到最 ...

  6. onload与ready差异

    window.onload: 等所有资源加载完document.ready: DOM树构建完资源还没加载完 应该使用ready保证用户体验.否则当网站有很多图片资源时要很长时间才能加载完这段时间内Js ...

  7. siebel 界面搭建

    Siebel界面的初步搭建都是基于Siebel Tools工具来创建的,其搭建步骤: 1. 首先先创建一个Project项目,点击project--->点 new Record--->输入 ...

  8. Linux添加alias简化命令

    一.简介 linux alias 是命令的一种别称,输入 alias 可以看到像下面这样的结果: alias vi="vim" 也即,输入vi后,被自动定向到vim这个命令了.al ...

  9. unity的默认文件目录及脚本之间的执行顺序

    在unity中,有几个默认的文件目录,这些目录对于开发者来说是非常重要的,今天记录一下这些目录的功能和一些相关的知识 大神雨松给出的帖子我个人觉得还是很有价值的,附上链接 http://www.xua ...

  10. python 用cookie模拟登陆网站

    import re import requests def get_info(url): headers = { "Cookie" :"***************** ...