【swift總結】集合

來源:互聯網
上載者:User

標籤:

swift提供三個集合類型

  1. Array(數組)有順序可以重複 []
  2. Set(集合)沒順序不可以重複 {}
  3. Dictionary(字典)索引值對{}
Array(數組)建立數組
/**建立一個空的Int類型的數組*/var someInts = [Int]();/*往數組添加一個元素3*/someInts.append(3);/*把這個數組置為空白*/someInts = [];/*建立一個Double類型的數組,含有3個值,每個值都是0.0*/var treeDoubles = [Double](count: 3, repeatedValue: 0.0);/**/var otherDoubles = [Double](count: 4, repeatedValue: 1.6);/*使用兩個相同類型的數組相加建立一個新的數組*/var doubleArray = treeDoubles + otherDoubles;/*直接建立一個數組*/var strArray = ["愛我","不愛我", "愛我", "不愛我"];
訪問和修改數組
strArray.count; /**返回數組的長度 4*/strArray.isEmpty;   //判斷數組是不是空 falsestrArray.append("去死吧"); //往數組中添加一個元素 strArray += ["當然不愛你了"]; //加上一個數組 strArray += ["老公", "老婆"]; strArray[0];    //訪問數組第一個元素 strArray[0] = "逗逼"; //修改第1個元素的值strArray[5...7] = ["無聊"];   //把5-7這個範圍中的元素修改位"無聊" strArray.insert("小孩", atIndex: 3);      //在第四個位置插入字串strArray.removeAtIndex(3);  //移除第四個位置的元素 strArray.removeLast();  //移除最後一個元素
遍曆數組
for str in strArray {    print(str);}

使用enumerate()函數

for (index, value) in strArray.enumerate() {    print("\(index + 1) 個元素是 \(value)");}
Set(集合)

Set類型裡面的值是不能相等的,swift會判斷兩個值得hashcode值是否相等來判斷這兩個值是不是相等的

建立Set
ar strSet = Set<String>();  //建立一個空的SetstrSet.insert("one");   //往Set中插入一個值strSet = [];    //把set置空var numSet: Set<String> = ["one", "two", "three","four"];   //直接聲明

注意:Set類型不能被推斷,所以建立Set的時候一定要給出是Set類型

var numSet = ["one", "two", "three","four"];//這樣會被推斷位元組var numSet:Set = ["one", "two", "three","four"];//這樣才是Set,String類型會自動推斷
訪問修改Set
numSet.count;   //返回元素的個數numSet.isEmpty; //判斷numSet是不是空numSet.insert("five");  //往numSet中插入元素numSet.remove("two");/*移除set中的元素,如存在返回這個元素,否則返回nil*/numSet.contains("one");//判斷set是否包含這個元素
遍曆set
for num in numSet {    print(num);}//返回排序好的set元素for num in numSet.sort() {    print(num);}
求交集,並集,補集等

let set1: Set = [1, 2, 3, 4];let set2: Set = [3, 4, 5, 6];sort()函數會把set轉為數組set1.union(set2).sort();//並集[1, 2, 3, 4, 5, 6]set1.intersect(set2);//交集{3, 4}set1.subtract(set2);//不在set2中的元素{2, 1}set1.exclusiveOr(set2);//不在並集裡面的{5, 6, 2, 1}
內含項目關聯性

let setA: Set = [1, 2, 3, 4];let setB: Set = [3, 4, 5, 6];let setC: Set = [1, 2];setC.isSubsetOf(setA);  //setC是不是包含與setA truesetA.isSupersetOf(setC);    //setA是不是包含setC truesetA.isDisjointWith(setB);  //setA是不是不和setB相交 falsesetC.isDisjointWith(setB);  //setC是不是不和setB相交 false
Dictionary(字典)建立字典
/*建立一個空的字典*/var nameOfInteger = [Int:String]();/*添加一個元素*/nameOfInteger[1] = "one";/*把字典置空*/nameOfInteger = [:];//直接建立一個字典var strDict = ["one":"高富帥", "two":"土豪", "three":"帥哥", "four":"屌絲"];
訪問和修改字典
/*返回元素個數*/strDict.count;/*判斷字典是不是空*/strDict.isEmpty;/*訪問字典鍵位four的元素*/strDict["four"];/*修改這個元素,如果沒有就是添加*/strDict["four"] = "土鱉";/*更新元素,沒有就添加然後返回nil*/let oldValue = strDict.updateValue("醜比", forKey: "four");/*訪問元素,沒有就是nil*/let str = strDict["three"];/*刪除這個元素*/strDict["four"] = nil;
字典的遍曆
for (key, value) in strDict {    print(value);}/**遍曆key*/for key in strDict.keys {    print(strDict[key]);}//將key或value轉為數組let keyArray = [String](strDict.keys);

【swift總結】集合

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.