Swift入門篇-集合

 

一:數組swift

 

一:可變數組 

    定義:數組使用有序列表存儲相同類型的多重數據。

   格式:

 第一種格式

   var  變量: 類型[] = [變量值,變量值,...]

第二種格式

   var    變量 =[變量值,變量值,...]

  說明:

1:[變量值,變量值...]  這樣表示數組 ,前提是 變量值的類型必須一值。(和其餘語言有所不一樣)

2:上面兩種格式都是定義一個數組,數組中的變量值的類型必須一致

3:第一種格式定義的數組,是直接定義數組,第二種格式定義的數組 是編譯器經過類型值推導出是數組格式 

注意點
1:常量關鍵字(let) 定義的數組,不可變數組是不能作任何修改,只能訪問。 2:變量關鍵字(var) 定義的數組 ,可變數組能夠修改,能夠訪問。

例子數組

//-------數組的定義------------

/*
1:["hello","swift"] -->[]裏面包含的變量值類型都是字符串,便是字符串可變數組
2;編譯器經過["hello","swift"]  來推斷 arr變量的類型是字符串可變數組類型
*/

var  arr = ["hello","swift"]

/*
1:var  arr1:String[]--->直接定義arr1 是字符串可變數組類型,其數組中值必須爲字符串
*/
var  arr1:String[] =  ["hello","swift"]

println("arr =\(arr),  arr1=\(arr1)")

運行結果

arr =[hello, swift],  arr1=[hello, swift]

注意點 app

var  str = [" hellow",11]
println("str =\(str)")

運行結果
str =(
    " hellow",
    11
)

/*
1:[" hellow",11] -->[] 變量值類型是字符串和整形,類型不一致,即不是數組
2:結果(" hellow",11) 是一個不可變數組
*/

可變數組的操做函數

 ①:數組的長度和數組變量值修改spa

//-----------數組的長度----

var  Arr = ["hell0","swift"]
var count  = Arr.count //count 屬性 返回 數組的長度
println( "count=\(count)")

//------------數組中變量值的修改------
var  str = [81,82,85]

str[2] = 83 //str[2] 指的是數組中索引爲2的變量值即85  從新賦值爲83
println("str=\(str)")

運行結果:

count=2

str=[81, 82, 83]

②:可變數組的追加  +=  appendcode

//-------數組的追加---appped()函數------------

var  arr = [1,2] //定義整形數組變量arr
arr.append(3)//append(3) 是在arr數組的尾端追加變量值3到數組中  即數組長度增長1

println(" arr = \(arr)  長度=\(arr.count)")


//-------數組的追加--- += ------------

var  arr1 = [10,11] //定義整形數組變量arr
arr1 += 12 // += 是在arr數組的尾端追加變量值3到數組中 數組長度增長1 (內部實現原理 也會用到append函數)
println(" arr1= \(arr1) 長度=\(arr1.count)")


運行結果

 arr = [1, 2, 3]  長度=3
 arr1= [10, 11, 12] 長度=3

 

③: 可變數組的插入 Insert(變量值 , atIndex: 索引)blog

//-------數組的追加 --- Insert(變量值 ,atIndex:索引)-----------

var  arr2 = [10,11]
arr2.insert(9,atIndex:0) // 在數組arr中0的位置插入變量值9 數組長度加1
println("arr2=\(arr2) 長度=\(arr2.count)")

運行結果

arr2=[9, 10, 11] 長度=3

 

3: 可變數組的移除  removeAtIndex(索引),removeLast()索引

//--------------數組的移除  removeLast() 數組尾端移除變量值----

var arr4 = [200,201,202]

arr4.removeLast() //移除數組arr3中尾端的 的變量值,數組長度減1
println(" arr4 =\(arr4)  長度=\(arr4.count)")



//--------------數組的移除  removeAtIndex(索引)數組指定位置移除變量值----

var arr3 = [100,101,102]

arr3.removeAtIndex(0)//移除數組arr3中索引爲0 的變量值,數組長度減1
println("arr3 =\(arr3)  長度=\(arr3.count)")


運行結果
 arr4 =[200, 201]  長度=2
arr3 =[101, 102]  長度=2

 4:建立空數組rem

①:定義可變空數組
格式: 變量關鍵字 變量 = 類型[] () 例子:
var arr = Int[]() 注意點: 1:常量關鍵字(let) 修辭的數組是不可變數組,不能修改,定義空字符數組沒有意義 2:變量關鍵字(var) 修辭的數組,是可變數組 實在是能動態改變的。

②:IsEmpty 函數判斷數組是否爲空


//-----------空數組----

/*
1: Int[] () 是整形空數組
2: arr 數組變量 被let 修辭 ,arr數組只能訪問
*/

let  arr = Int[] ()


/*
1: Int[] () 是整形空數組
2: arr1 數組變量 被var  修辭 ,arr數組是可變數組,能夠動態修改
*/
var arr1 = Int[] ()
arr1 += 1
println("arr1= \(arr1)")

//-----------判斷數組是否爲空---
var arr2 = Int[] ()

if arr2.isEmpty { //isEmpth 是判斷數組是不是空數組
    println("arr2 數組爲空")
}
else{
        println("arr2 數組不爲空")
}


運行結果

arr1= [1]
arr2 數組爲空

 數組的遍歷  for  in (前面文章講過用法)字符串

 

 

//------------數組的訪問--  for  in -----

var arr = ["hello","swift"]

for str in arr {  //  for  變量 in 集合 當執行for  in的時候 集合中變量值會依次賦值給str
    
    println(str)
}

運行結果:

hello
swift

 

二:可變字典

一:可變字典

    定義:字典是一種存儲相同類型多重數據的存儲器。每一個值(value)都關聯獨特的鍵(key),鍵做爲字典中的這個值數據的標識符

   格式:

 第一種格式

   變量  變量: Dictionary<類型,類型> = [變量值:變量值,變量值:變量值,...]

第二種格式

   變量   變量 =[變量值:變量值,變量值:變量值,...]

  說明:
例子:
第一種格式:

var  dic:Dictionary<String ,Int>= ["H1":1,"H2":2]

第二種格式:

var  dic = ["H1":1,"H2":2]

說明:
字典規範  
1:[]中由 key:value 鍵值組成的  

2:全部key 的類型必須一直, 全部value的類型必須一致,全部key不能重複

3:第一種格式定義的字典,是直接定義字典,第二種格式定義的數組 是編譯器經過類型值推導出是字典格式 

注意點:
1:常量關鍵字(let) 定義的字典,是不可字典,是不能作任何修改,只能訪問。 2:變量關鍵字(var) 定義的字典 ,是可變字典,是能夠修改,能夠訪問。

例子:

/*
1: [] 裏面有key:value組成
2: 全部key的類型一直而且不重複,全部value類型一致
3:即 ["H1":1 ,"H2":2] 是一字典類型 ,編譯器經過字典類型推導出 dic是可變字典
*/

var  dic = ["H1":1 ,"H2":2]
println("dic=\(dic)")

/*
1:var dic1:Dictionary<String ,Int>  直接定義可變字典類型中key 爲字符串 value 爲整形
2:key中字符不能重複
*/

var dic1:Dictionary<String ,Int> = ["H1":1 ,"H2":2]

println("dic1=\(dic1)")

運行結果

dic=[H1: 1, H2: 2]
dic1=[H1: 1, H2: 2]

注意點:

/*
1:[] 是有key:value 組成
2:key 類型一直,不重複,可是value 類型不一致便是不可變字典

*/


var  str = ["str":1 ,"hell0":"swift"]

println(str)

 可變字典  修改值

1:updateValue(修改值, forKey key值)

2:經過[key] 來修改value 的值

//-------------經過key來修改value---updateValue(修改值, forKey  key值)

/*
1:[] 是有key:value 組成
2:key 類型一致,不充分是value 類型一致便是可變字典
*/
var  str = ["str":"aa" ,"hell0":"swift"]
str.updateValue("bb" ,forKey:"str")
println("str =\(str)")


//-------------經過key來修改value---同[key]來修改value 的值

var  str1 = ["str":"aa" ,"hell0":"swift"]
str1["str"] = "cc" //字典同key(str) 直接修改key對應value
println("str1=\(str1)")


運行結果:
str =[str: bb, hell0: swift]

str1=[str: cc, hell0: swift]

 

 

可變字典 -- 經過key 獲得value的值 即value的是一個可選值。

/*
1:[] 是有key:value 組成
2:key 類型一致,不充分是value 類型一致便是可變字典

*/

var  str = ["str":"aa" ,"hell0":"swift"]
var temp = str["Str"]  //訪問字典不存在的key ,返回值爲nil
var temp1 = str["str"] //訪問字典存在的key,返回對應的value
println("temp=\(temp),temp1 = \(temp1)")

// 總結 str[key] 返回值多是正確,也有多是返回nil  即 str[key] 返回值是可選值

運行結果;
temp=nil,temp1 = aa

字典的遍歷  ----for  in 

var  dic = ["hello":1 , "swift":2]

//  for  元組  in  字典集合  用元組來表示字典中對應的鍵值

for (key,value) in dic {
    
    println("key=\(key),value=\(value)")
}

建立一個空的可變字典

格式 : 
  var  變量 = Dictionary<key類型,value類型()
//建立一個key爲字符串 value 爲整形的空字典,而且字典爲可變字典
var arr = Dictionary<String,Int> ()
相關文章
相關標籤/搜索