生活随笔
收集整理的這篇文章主要介紹了
4.集合
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? Swift 語言提供Arrays、Sets和Dictionaries三種基本的集合類型用來存儲集合數據。數組(Arrays)是有序數據的集合。集合(Sets)是無序無重復數據的集合。字典(Dictionaries)是無序的鍵值對的集合。
?
如果創建一個Arrays、Sets或Dictionaries并且把它分配成一個變量,這個集合將會是可變的。這意味著我們可以在創建之后添加更多或移除已存在的數據項,或者改變集合中的數據項。如果我們把Arrays、Sets或Dictionaries分配成常量,那么它就是不可變的,它的大小和內容都不能被改變。可變和不可變對應OC中的NSArray、NSMutableArray等。
1.數組
- 數組使用有序列表存儲同一類型的多個值。相同的值可以多次出現在一個數組的不同位置中。
- 寫 Swift 數組應該遵循像Array<Element>這樣的形式,其中Element是這個數組中唯一允許存在的數據類型。我們也可以使用像[Element]這樣的簡單語法。盡管兩種形式在功能上是一樣的,但是推薦較短的那種。
//數組初始化
var listTwo = Array<Int>();
//遵循語法方式:空數組
var listOne = [Int]();
//簡單語法方式:空數組
var listThree: [Int] = [
1,
2,
3];
//字面量數組
var listFour = [Double](count:
3, repeatedValue:
0.0);
//帶默認值數組
var listFive = [Double](count:
4, repeatedValue:
1.0);
var listSix = listFour + listFive;
//數組相加創建數組
print("The listFive contains \(listFive.count) items.");
//只讀屬性count來獲取數組中的數據項數量
listOne.isEmpty;
//布爾值屬性isEmpty檢查count屬性的值是否為 0//添加元素
listOne.append(
3);
listTwo += [
4];
listThree.insert(0, atIndex:
0);//獲取數據元素
var firstItem = listFive[
0];//刪除元素
listSix.removeAtIndex(
0);
//listSix.removeLast();
//listSix.removeAll();//數組遍歷
for item
in listSix
{print(item);
}for (index, value)
in listSix.enumerate()
//使用enumerate()方法獲取每個數據項的值和索引值
{print("Item \(String(index + 1)): \(value)");
} 2.集合
- 用來存儲相同類型并且沒有確定順序的值。當集合元素順序不重要時或者希望確保每個元素只出現一次時可以使用集合而不是數組。
- Swift 中的Set類型被寫為Set<Element>,這里的Element表示Set中允許存儲的類型,和數組不同的是,集合沒有等價的簡化形式。?
//集合初始化
var listOne = Set<Int>();
//構造器語法
var listTwo: Set<Int> = [
1,
2,
3,
5,
9,
10,
13,
7,
6,
8];
//數組字面量創建集合
var listThree: Set = [
2,
3,
4];
//Set類型不能從數組字面量中被單獨推斷出來,因此Set類型必須顯式聲明
print("The listOne contains \(listOne.count) items.");
//只讀屬性count來獲取集合中的數據項數量
listOne.isEmpty;
//布爾值屬性isEmpty檢查count屬性的值是否為 0//添加元素
listTwo.insert(
4);//刪除元素
listTwo.remove(
3);//判斷是否包含特定值
listTwo.contains(
5);//遍歷
for item
in listTwo
{print(item);
}for item
in listTwo.sort()
//排序
{print("$$$$\(item)");
}for (index, value)
in listTwo.enumerate()
//使用enumerate()方法獲取每個數據項的值和索引值
{print("Item \(String(index + 1)): \(value)");
}listTwo.sort(); //[1, 2, 4, 5, 6, 7, 8, 9, 10, 13]
listThree.sort();
//[2, 3, 4]
//根據兩個集合的值創建一個新的集合
listTwo.union(listThree).sort();
//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13]
//根據兩個集合中都包含的值創建的一個新的集合
listTwo.intersect(listThree).sort();
//[2, 4]
//根據不在該集合中的值創建一個新的集合
listTwo.subtract(listThree).sort();
//[1, 5, 6, 7, 8, 9, 10, 13]
//根據在一個集合中但不在兩個集合中的值創建一個新的集合
listTwo.exclusiveOr(listThree).sort();
//[1, 3, 5, 6, 7, 8, 9, 10, 13] 集合操作圖解:
?
3.字典
- 存儲多個相同類型的值的容器。每個值(value)都關聯唯一的鍵(key),鍵作為字典中的這個值數據的標識符。和數組中的數據項不同,字典中的數據項并沒有具體順序。
- Swift 的字典使用Dictionary<Key, Value>定義,其中Key是字典中鍵的數據類型,Value是字典中對應于這些鍵所存儲值的數據類型。也可以用[Key: Value]這樣快捷的形式去創建一個字典類型。雖然這兩種形式功能上相同,但是后者是首選。
//字典初始化
var dicTwo = Dictionary<Int, String>();
//標準語法方式
var dicOne = [Int: String]();
//快捷語法方式
var dicThree : [String: String] = [
"Gof":
"Ligaofeng",
"Dub":
"Dublin"];
//字面量創建字典
var dicFour = [
"Gof":
"Ligaofeng",
"Dub":
"Dublin",
"YYZ":
"Toronto Pearson"];print("The dicThree contains \(dicThree.count) items.");
//只讀屬性count來獲取字典中的數據項數量
dicThree.isEmpty;
//布爾值屬性isEmpty檢查count屬性的值是否為 0//獲取/修改數據元素
var item = dicFour[
"Gof"];
dicFour["Chief"] =
"Chief GO";
let oldValue = dicFour.updateValue(
"LiGaoFeng", forKey:
"Gof");
let delValue = dicFour.removeValueForKey(
"Gof");//遍歷
for (key, value)
in dicFour
{print("\(key): \(value)");
}for key
in dicThree.keys
{print("Key: \(dicThree)");
}for value
in dicThree.values
{print("Value: \(value)");
} ?
?
轉載于:https://www.cnblogs.com/LeeGof/p/5673914.html
總結
以上是生活随笔為你收集整理的4.集合的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。