1. Swift的集合是一种特别有用的工具。Swift提供了数组和字典两种集合类型来存储集合数据。数组用于按顺序存储相同类型的数据,字典则采用key-value的形式存储数据。访问时数组通过下标(索引)来访问,访问字典时通过每个元素的key来访问。
一.数组:
1. 声明数组:
(1)使用泛型语法:
var myArr : Array<String>;
var myInt : Array<Int>
(2)使用简化语法:
var names : [String]
var nums : [Int]
2. 创建数组
(1)使用Array结构体提供的构造器:init()和 init(count:, repeatedValue:)
myArr = Array<String>() //使用空的构造器创建一个空的数组
names = Array<String>(count: 10, repeatedValue: "abcdef")
(2)使用简化语法创建数组:
var num : [Int] = [1, 2, 3, 4];
var myStr : [String] = ["abc", "123", "def", "x", "y"]
var values = ["A", "a", "B", "b"]
二.使用数组
1. 使用数组:同Java中一样,通过索引(下标)来访问数组元素, 索引是从0开始。
2. 数组的可变性:****** 和Java中不同,Java中的数组一旦声明后长度是不可变的,而在Swift中,数组的是否可变取决于该变量的类型:使用var声明的数组是可变数组,可变数组的元素、长度都可以改变。使用let声明的数组是不可变数组。
3. 对于可变数组的操作:---以数组 var names = ["abc", "def"]为例
(1)添加元素:names.append("hahaha")
(2)插入元素:names.insert("1212", atIndex: 1) ---插入的下标不能大于数组的长度减1.
(3)删除元素:删除元素的方法有多种:
a)names.removeAtIndex(1):删除指定索引处的元素,会返回删除的元素
b)names.removeLast():删除数组的最后一个原属,会返回删除的元素
c)names.removeAll():清空数组
d)names.remove(keepCapacity: false):清空数组,并指定是否保留数组底层的数据缓冲。默认为false
4. 数组和范围:Swift中还支持在方括号中使用Range,这样既可以一次性地获取多个数组元素,也可以一次性对多个元素进行赋值。举个栗子:
var languages = ["Swift", "OC", "PHP", "Java", "Python", "C++"]
//获取索引为1-4的元素
let str = language[1..<4]
//将索引为2-4的元素替换
languages[2...4] = ["abc", "123"] ----****这样也可以变相地将下标等于4的元素删除了
//将索引为1-2的元素替换
languages[1...2] = ["abc", "999", "666", "def"] ----**变相地增加了两个元素
5. 多维数组:
(1)声明:var a : [[Int]]
var str : Array<Array<Array<String>>>