集合基本類型:數(shù)組 Array (有序), 集合 Set (無序不重復(fù)), 字典 Dictionary (無序鍵值對(duì))文章來源:http://www.zghlxwxcb.cn/news/detail-672626.html
1.數(shù)組 Arrays
(1)數(shù)組的表示
Array<Element>
[Element]
(2)創(chuàng)建空數(shù)組
var someInts: [Int] = []
someInts.count //數(shù)組長(zhǎng)度
(3)帶值數(shù)組
var a = Array(repeating: 0.0, count:3) //[0.0, 0.0, 0.0]
//repeating:初始值.count:長(zhǎng)度
(4)兩數(shù)組相加創(chuàng)建數(shù)組
var a = Array(reapeating: 0.0, count = 3)
var b = Array(reapeating: 2.5, count = 3)
var c = a + b //[0.0, 0.0, 0.0, 2.5, 2.5, 2.5]
(5)字面量創(chuàng)造數(shù)組
var List: [String] = ["Eggs", "Milk"] //或者
var List = ["Eggs", "Milk"]
(6)訪問數(shù)組
List.count //長(zhǎng)度(數(shù)據(jù)量)
List.isEmpty //是否為空
List[0] //Eggs
var egg = List[0] //將第一個(gè)數(shù)組的值賦給egg
(7)添加
List.append("Flour") //append()方法添加
List += ["Powder"] //直接添加一個(gè)數(shù)據(jù)
List += ["Spread", "Cheese", "Butter"] //直接添加多個(gè)數(shù)據(jù)
List.insert("up", at: 0) //在第一個(gè)數(shù)據(jù)前添加"up"
(8)修改
List[0] = "Six Eggs"
List[4...6] = ["Banana", "Apple"]
(9)刪除
let a = List.remove(at: 0) //索引值為0的項(xiàng)被移除。a被賦值被刪除的那一項(xiàng)的值。后邊的項(xiàng)自動(dòng)往前補(bǔ)
let apple = List.removeLast() //移除最后一項(xiàng),a被賦值被刪除的那一項(xiàng)的值
(10)遍歷
for item in List{
print(item)
}
同時(shí)需要索引和值時(shí):文章來源地址http://www.zghlxwxcb.cn/news/detail-672626.html
for (index,value) in List.enumerated(){
print( "Item \( String(index + 1) ): \(value)" )
}
2.集合 Sets
(1)集合的表示
Set<Element>
(2)構(gòu)造一個(gè)集合
var letters = Set<Character>() //或
letters.insert("a")
letters = []
(3)字面量創(chuàng)造集合
var fav: Set<String> = ["Rock", "Class", "Hip"] //或
var fav: Set = ["Rock", "Class", "Hip"]
(4)訪問
fav.count //長(zhǎng)度
fav.isEmpty //是否為空
fav.contains("Funk") //檢查是否包含"Funk"值
(5)添加
fav.insert("Jazz")
(6)刪除
fav.remove("Rock") //如果有這個(gè)值則返回這個(gè)值,如果沒有則返回nil
fav.removeAll()
(7)遍歷
for g in fav{
print("\(g)")
}
//返回一個(gè)有序數(shù)組
for g in fav.sorted(){
print("\(g)")
}
(8)集合操作
let add: Set = [1, 3, 5, 7, 9]
let even: Set = [0, 2, 4, 6, 8]
let single: Set = [2, 3, 5, 7]
add.union(even).sorted() //[] 交集
add.intersection(even).sorted() //[1, 9] add不在single中的值的集合
add.symmetricDifference(single).sorted() //[1, 2, 9] add和single不相交的值
(9)集合關(guān)系
let h: Set = ["??", "??"]
let f: Set = ["??", "??", "??"]
let c: Set = ["??"]
//==: 全部相同
h.isSubset(of: f) //true h是否被f全包
f.isSuperset(of: h) //true f是否全包h
f.isDisjoint(with: c) //true f,c是否無交集
//isStrictSubset(of: ) / isStrictSuperSet(of: ) A是否是B的子集或父集且AB不相等
3.字典 Dictionary
(1)字典的表示
Dictionary<Key, Value> 或者 [Key: Value]
(2)創(chuàng)建空字典
var names: [Int: String] = [ : ] //或者
names[16] = "sixteen"
names = [ : ]
(3)字典字面量創(chuàng)建字典
var airports: [String: String] = ["a": "1", "b": "2"] //或者
var airports = ["a": "1", "b": "2"]
(4)訪問
airports.count //數(shù)量
airports,isEmpty //是否為空
(5)新增
airports["c"] = "3"
(6)修改
airports["c"] = "4"
(7)更新
airports.updateValue("6", forkey: "a")
//如果forkey存在值則修改,返回修改前的值。不存在則返回nil
(8)檢索鍵對(duì)應(yīng)的值。無值則返回nil
airName = airports["a"]
(9)移除鍵值對(duì)
airports["a"] = nil //或者
airports.removeValue(forkey: "a") //存在時(shí)返回被移除的值,不存在時(shí)返回nil
(10)遍歷
//1
for (airCode, airName) in airports{
print("\(airCode) : \(airName)")
}
//2
for airCode in airports.keys{
print("code: \(airCode)")
}
//3
let airCodes = [String](airports.keys)
let airNames = [String](airports.values)
到了這里,關(guān)于iOS開發(fā)Swift-集合類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!