Swift--数据集合

//Swift语言提供了arrays、Sets和Dictionaryies三种集合类型来存储集合数据。数组(Arrays)是有序的数据的集。集合(Sets)是无序无重复数据的集合。字典(Dictionaries)是无需的键值对的集。Swift语言中的Arrays、Sets、Dictionaries中存储的数据类型必须明确。这意味着我们不能把不正确的数据类型插入其中

 

 

//一.数组

//创建一个由特定数据类型构成的空数组

var array = [Int]()

array.append(3)

 

//可以创建特定大小并且所有数据被默认的构造方法。

var three = Array(repeating:0.0,count:3)  //"[0, 0, 0]"

 

//通过两个数组相加创建一个数组

var oneArray = Array(repeatElement(2.5, count: 3)) //"[2.5, 2.5, 2.5]"

var twoArray = Array(repeatElement(3.0, count: 3)) //"[2.5, 2.5, 2.5, 3, 3, 3]"

var threeArray = oneArray+twoArray   "[2.5, 2.5, 2.5, 3, 3, 3]"

//增删改查

var shopArray = ["Eggs","Milk"]

print(shopArray.count)

print(shopArray.isEmpty)

print(shopArray.contains("Eggs"))

 

shopArray.append("Flour")  //"["Eggs", "Milk", "Flour"]"

shopArray += ["Black Powder"]  //"["Eggs", "Milk", "Flour", "Black Powder"]"

 

var first = shopArray[0]

shopArray[0] = "Six eggs"

 

//替换   不能用下表访问的形式去在数组尾部添加新项

shopArray[2...3] = ["Bananas","Apple"]   //""["Six eggs", "Milk", "Bananas", "Apple"]"

print(shopArray)

//调用insert(_:at:)方法在某个具体索引值之前添加数据项

shopArray.insert("Maple Syrup", at: 0)  //"["Maple Syrup", "Six eggs", "Milk", "Bananas", "Apple"]"

//调用remove(at:)方法来移除数组中的某一项

shopArray.remove(at: 0)

print(shopArray)

 

shopArray.removeLast()

print(shopArray)

//数组的遍历

for str in shopArray{

    print(str)

}

 

for (index,value) in shopArray.enumerated() {

    print("Item \(String(index+1)):\(value)")

}

//二.集合(Sets)

//Swift的Set类型被桥接到Foundation中的NSSet类

//一个类型为了存储在集合中,该类型必须是可哈希化的。一个哈希值是Int类型的,相等对象哈希值必须相等

//1.创建一个空的集合

var mySet = Set<Character>()

mySet.count

mySet.insert("a")

 

mySet = []

//用数组字面量创建集合

 

var set0:Set<String> = ["Rock","Classical"]

print(set0.isEmpty)

set0.insert("Jzaa")

set0.contains("Rock")

//你可以通过调用Set的remove(:)方法删除一个元素,如果该值是set的一个元素则删除该元素并返回被删除的元素之,如果不包含该值,则返回nil

 

set0.sorted()

 

//集合基本操作

//1.获取两个集合的值

let a:Set = [1,2,4,5,6,8]

let b:Set = [1,2,4,3,7,9]

 

//1).使用后intersection(_:)方法根据两个集合中都包含的值创建一个新的集合

let c = a.intersection(b).sorted(){$1 < $0}

print(c)

 

//2).symmetricDifference(_:)方法 获取不是a、b集合共同拥有的集合

let d = a.symmetricDifference(b)

 

//3).获取a、b集合中的所有不重复的值

let e = a.union(b)

//4).获取a、b集合中的a集合中不被b包含的值的集合

let f = a.subtracting(b)

//2.两个集合的比较

 

//一个集合是否是另一个集合的子集isSubset(of:)

//一个集合是否是另一个集合的夫集isSuperset(of:)

//使用isStrictSubset(of:)或者isStrictSuperset(of:)方法来判断一个集合是否是另外一个集合的子集合或者父集合并且两个集合并不相等

//使用isDisjoint(with:)方法来判断两个集合是否不含有相同的值(是否没有交集)

//三.字典

var dic = [Int:String]()

dic[16] = "16"

print(dic)

 

var dic1 = [1: "", 2: ""]

 

 

for (key,value) in dic1 {

    print(key,value)

}

for str in dic1.values {

    print(str)

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值