swift

//: Playground - noun: a place where people can play

 

import UIKit

 

var str = "Hello, playground"

 

//字典 Dictionary (键值,数据对应的无序数据集合)

 

//声明字典

var dict:[String : String] = ["swift":"雨燕","Python":"大蟒","java":"爪哇岛","groovy":"时髦的"]

//var dict1:Dictionary<String,String> = ["swift":"雨燕","Python":"大蟒","java":"爪哇岛","groovy":"时髦的"]

 

//空字典的声明

var emptyDictionary1:[String:Int] = [:]

var emptyDictionAry2:Dictionary<Int, String> = [:]

var emptyDictionAry3 = [String:String]()

var emptyDictionary4 = Dictionary<Int,Int>()

 

print(dict["swift"])

 

dict["C++"]

 

dict.count

dict.isEmpty

emptyDictionary1.isEmpty

 

Array(dict.keys)

Array(dict.values)

 

for key in dict.keys {

    print(key)

}

for value in dict.values {

    print(value)

}

 

for (key, value) in dict {

    print("(key):(value)")

}

 

 

let dict1 = [1:"A",2:"B",3:"C"]

let dict2 = [1:"A",2:"B",3:"C"]

 

dict1 == dict2//字典是无序的

 

//字典的操作

 

var user = ["name":"bobobo","passwork":"liuyubo","occupation":"programmer"]

//字典元素的修改

user["occupation"] = "freelancer"

 

user.updateValue("imooc", forKey: "password")

 

let oldPassword = user.updateValue("imooc", forKey: "password")

if let oldPassword = oldPassword,

   let newPassword = user["password"] , oldPassword == newPassword {

    print("注意:修改后的密码和之前一样,可能导致安全问题")

    

}

 

//添加元素

user["email"] = "imooc@imooc.com"

user

 

user.updateValue("imooc.com", forKey: "website")

user

 

//删除元素

user["website"] = nil

user

 

//user.removeValue(forKey: "email")

//user

 

if let email = user.removeValue(forKey: "email") {

    print("电子邮箱(email) 删除成功")

}

user.removeAll()

 

 

////集合 Set

//var skillsOfA : Set<String> = ["swift","oc","oc"]//集合自动去重,即集合中的元素是唯一的

//

//var emptySet1:Set<Int> = []

//var emptySet2 = Set<Double>()

//

//var vowels = Set(["A","E","I","O","U"])

//var skillsOfB:Set = ["HTML","CSS"]

//

////基本方法

//skillsOfA.count

//

//let set:Set<Int> = [2,2,2,2]

//set.count

//

//skillsOfA.isEmpty

//emptySet1.isEmpty

//

//let e = skillsOfA.first

//skillsOfA.contains("swift")

//

//for skill in skillsOfB {

//    print(skill)

//}

//

//let setA = [1,2,3]

//let setB = [3,2,1]

//

//setA == setB//无序,没有重复的元素

 

//集合的相关操作

var skillsOfA: Set<String> = ["swift","OC"]

var skillsOfB: Set<String> = ["HTML","CSS","Javascript"]

var skillsOfC: Set<String> = []

 

skillsOfC.insert("swift")

skillsOfC.insert("HTML")

skillsOfC.insert("CSS")

 

skillsOfC.insert("CSS")

 

////删除

//skillsOfC.remove("CSS")

//skillsOfC

//skillsOfC.remove("Javascript")

//skillsOfC

//

//if let skill = skillsOfC.remove("HTML") {

//    print("HTML is Removed")

//}

//

//skillsOfC.removeAll()

 

//并集 union  unionInPlace

skillsOfA.union(skillsOfC)//不改变skillsOfA

skillsOfA

 

//skillsOfA.formUnion(skillsOfC)//改变skillsOfA

//skillsOfA

 

//交集

skillsOfA.intersection(skillsOfC)

 

//减法

skillsOfA.subtract(skillsOfC)

skillsOfC.subtract(skillsOfA)

 

 

 

//异或

 

 

skillsOfA.union(["java","android"])

 

var skillsOfD:Set = ["swift"]

 

skillsOfD.isSubset(of: skillsOfA)

skillsOfD.isStrictSubset(of: skillsOfA)

 

skillsOfA.isSuperset(of: skillsOfD)

 

 

//总结,  选择合适的数据结构

//数组:有序

//集合:无序,唯一性,提供集合操作,快速查找

//字典:键-值数据对

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/zrr-notes/p/6027639.html