首页 > 代码库 > swift学习笔记之二——集合

swift学习笔记之二——集合

//===========================
//2014/7/21 17:27 swift集合
//===========================

swift提供了两种集合类型,arrays和dictionaryies,两种集合都是可变的,可以在集合声明后对其进行新增、删除和修改操作。
1、array
数组的定义与java数组相同,但swift的数组提供了更灵活的创建方式和操作方式。

数组创建和初始化方式:

var array1: Array<T> = [val1,val2,val3]
 var array2: T[] = [val1,val2,val3] // 常用

创建空数组

var arrays = Array<T>()
 var arrays = T[]()

创建重复值数组

var arrays = Array(count:3,repeateValue:0.0) // 编译器会去自动识别值的类型
 var arrays = T[](count:3,repeateValue:0.0)

常用函数和属性:

array2.count (-> Int) // 输出元素的个数
 array2.isEmpty (-> Bool) // 判断数组是否为空数组
 array2.append(val4) // 追加数组元素
 array2 += val4  // 追加数组元素
 array2 += [val5,val6] // 追加一组数组元素
 array2[0] = val7 // 修改指定下表下元素的值
 array2[4...6] = [val5,val6] // 将下标 4~6的元素,替换为对应的元素,这样数组的元素个数可能减少或者增加
 array2.insert(val7,atIndex:0) // 在指定下标增加新元素,自动向后移位
 array2.removeAtIndex(0) // 移除指定位置的元素,并返回该元素。
 array2.removeLast() // 移除最后一个元素,并返回钙元素

数组的遍历与java类似,for语法,采用swift的语法即可

for item in array2 {
      println("\(item)")
 }

取数组下标及下标对应的值,采用enumerate全局函数

for (index,value) in enumerate(array2) {
      println("item \(index + 1): \(value)")
 }

2、数据字典(Dictionary)
这里的数据字段是key-value形式的一组值

var dicts = ["cls1":"JAVA","cls2":"C++","cls3":"Swift"]
 dicts["cls3"]  // 输出 Swift
 dicts["cls3"] = nil // 会把 "cls3":"Swift"这一对值删除
 dicts["cls3"] = "C" // 修改值
 dicts["cls4"] = "Swift" // 新增一对值
 dicts.removeValueForKey["cls4"] // 根据key值删除,并返回value

数据字典提供了 key-value遍历,key遍历,value遍历

for (key, val) in dicts {
      println("\(key) : \(val)")
 }
 for key in dicts.keys {
      println("\(key)")
 }
 for val in dicts.values {
      println("\(val)")
 }

空数据字典实例化

var namesOfIntegers = [Int: String]()

 namesOfIntegers = [:]  // 清空字典

数据字典的key的类型,必须是可以计算出hash值的类型
如果 a == b , 那么有 a.hashValue = http://www.mamicode.com/b.hashValue