swift中提供了3種集合型別,array資料型別,set集合型別,dictionary字典型別。array用於存放一組有序的資料,資料角標從0開始一次遞增;set用於存放一組無序的資料,資料不可以重複;dictionary也用於存放一組無序的資料,只是其是按照鍵值對的方式儲存,鍵值必須唯一。這裡借用官方文件中的一張圖來表示3種集合型別的特點:
array通常也被稱為陣列,swift是一種型別安全語言,其中的array型別也必須確定其元素的型別,宣告陣列型別有兩種方法,示例如下:
//將陣列宣告為int型別值集合的陣列
var array1:[int]
var array2:array
//建立空陣列
array1 =
array2 = array()
//向陣列中追加元素
在建立陣列時,也可以對陣列進行初始化,示例如下:
//建立陣列[0,0,0]swift中提供了許多訪問和修改陣列的方法,示例**如下:var array3 = [double](count: 3, repeatedvalue: 0)
//建立陣列[2.5,2.5,2.5]
var array4 = array(count: 3, repeatedvalue: 2.5)
//陣列可以使用+號直接進行追加 [0,0,0,2.5,2.5,2.5]
var array5 = array3+array4
//獲取陣列中元素個數
array5.count
//判斷陣列是否為空
array5.isempty
//通過下標訪問陣列中的元素
array5[1]
//通過下標修改陣列元素
array5[1]=2
//修改資料中的一組資料
array5[0...3] = [1,1,1,1]
//向陣列中某個位置插入乙個資料
array5.insert(3, atindex: 1)
//移除陣列某個角標處的元素
array5.removeatindex(1)
//移除陣列的最後乙個元素
array5.removelast()
//移除陣列第乙個元素
array5.removefirst()
//遍歷整個陣列
for item in array5
//遍歷陣列列舉
for (index,item) in array5.enumerate()
set型別集合不關注元素的順序,但是其可以保證其中元素的唯一性。和array型別一樣,set型別來宣告時也需要確定其內元素的型別,示例如下:
var set1:set
= ["a","b","c","d"]
下面示例**演示對集合進行操作:
var set1:set
= ["a","b","c","d"]
var set2:set
= ["e","f","g"]
//向集合中插入元素
set1.insert("z")
//獲取集合中元素個數
set1.count
//判斷集合是否為空
set1.isempty
//將集合中的某個元素移除
set1.remove("a")
//移除集合中的所有元素
set1.removeall()
//判斷集合中是否包含某個元素
set2.contains("e")
//遍歷集合
for item in set2
//進行從小到大的排序遍歷
for item in set2.sort()
set也支援進行一些集合的數**算,例如交集,並集,補集等,下面一張圖演示了set進行集合運算的一些特性:
intersect()方法返回兩個集合的交集。
exclusiveor()方法用於返回兩個集合交集的補集。
union()方法用於返回兩個集合的並集。
subtract()方法用於返回第二個集合的補集。
示例**如下:
var set3:set= [1,2,3,4]
var set4:set= [1,2,5,6]
//返回交集
var setinter = set3.intersect(set4)
//返回交集的補集
var setex = set3.exclusiveor(set4)
//返回並集
var setuni = set3.union(set4)
//返回第二個集合的補集
var setsub = set3.subtract(set4)
使用比較運算子==可以比較兩個set集合是否相等,當兩個set集合中所有元素都相等時,這兩個集合才相等。下面**顯示了與子集相關的運算:
var set5:set = [1,2]
var set6:set = [2,3]
var set7:set = [1,2,3]
var set8:set = [1,2,3]
//判斷是否是某個集合的子集 set5是set7的子集 返回ture
set5.issubsetof(set7)
//判斷是否是某個集合的超集 set7是set5的超集 返回ture
set7.issupersetof(set5)
//判斷是否是某個集合的真子集 set5是set7的真子集 返回ture
set5.isstrictsubsetof(set7)
//判斷是否是某個集合的真超集 set7不是set8的真超集 返回false
set7.isstrictsupersetof(set8)
swift中的dictionary在宣告時必須明確鍵的型別和值的型別,示例如下:
var dic:dictionarystring>
var dic2:[int:string] = [1:"one",2:"two"]
訪問與操作dictionary的方法,**示例如下:
var dic2:[int:string] = [1:"one",2:"two",3:"three",4:"four"]
//獲取字典鍵值對個數
dic2.count
//判斷字典是否為空
dic2.isempty
//通過鍵獲取值
dic2[1]
//通過鍵修改值
dic2[1] = "first"
//新增鍵值
dic2[0] = "zero"
//updatevalue 方法將更新乙個鍵值 如果此鍵存在 則更新鍵值 並且將舊的鍵值返回 如果此鍵不存在 則新增鍵值 返回nil 其返回的為乙個optional型別值 可以使用if let進行處理
dic2.updatevalue("9", forkey: 1)
//使用if let 處理updatevalue的返回值
iflet oldvalue = dic2.updatevalue("one", forkey: 1)
//通過鍵值獲取的資料也將是有個optional型別的值 也可以使用if let
iflet value = dic2[1]
//移除某個鍵值對
dic2[9]=nil
dic2.removevalueforkey(9)
//對字典進行遍歷
for (key,value) in dic2
//遍歷所有鍵
for key in dic2.keys
//遍歷所有值
for value in dic2.values
//進行從小到大的排序遍歷
for key in dic2.keys.sort()
Redis教程 五 集合(SET)型別
redis教程 五 集合 set 型別 redis 的鍵值可以支援資料型別 字串,列表,散表,集合,有序集合 hyperloglog 通過選用不同的資料結構,使用者可以使用 redis 解決各式各樣的問題。set集合 redis 的集合以無序的方式儲存多個各不相同的元素。使用者可以快速的地向集合新增...
Redis教程 五 集合(SET)型別
redis教程 五 集合 set 型別 redis的鍵值可以支援資料型別 字串,列表,散表,集合,有序集合 hyperloglog,通過選用不同的資料結構,使用者可以使用redis解決各式各樣的問題。set集合 redis的集合以無序的方式儲存多個各不相同的元素。使用者可以快速的地向集合新增元素,或...
java基礎(五) 集合
1.集合與陣列的區別 1 陣列不可變長度,集合可變長度 2 陣列裡可放基本資料型別和物件,集合只能放物件 2.集合框架頂層介面collection的共性方法 增 add object obj addall collection c 刪 clear remove object obj removeal...