Swift 3.0在集合类数据结构上的一些新变化总结
一、Array数组的更改
array数组中修改的API示例如下:
//创建大量相同元素的数组
//创建有10个String类型元素的数组,并且每个元素都为字符串"Hello"
//swift2.2
//vararray3=[String](count:10,repeatedValue:"Hello")
//swift3.0
vararray3=[String](repeating:"Hello",count:10)
//创建有10个Int类型元素的数组,且每个元素都为1
//swift2.2
//vararray4=Array(count:10,repeatedValue:1)
//swift3.0
vararray4=Array(repeating:1,count:10)
vararray=[1,2,3,4,5,6,7,8,9]
//向数组中追加一组元素
//swift2.2
//array.appendContentsOf([11,12,13])
//swift3.0
array.append(contentsOf:[11,12,13])
//向数组中的某个位置插入一个元素
//swift2.2
//array.insert(0,atIndex:0)
//swift3.0
array.insert(0,at:0)
//向数组中的某个位置插入一组元素
//swift2.2
//array.insertContentsOf([-2,-1],at:0)
//swift3.0
array.insert(contentsOf:[-2,-1],at:0)
//移除数组中某个位置的元素
//swift2.2
//array.removeAtIndex(1)
//swift3.0
array.remove(at:1)
//移除一个范围内的元素
//swift2.2
//array.removeRange(0...2)
//swift3.0
array.removeSubrange(0...2)
//修改一个范围内的元素
//swift2.2
//array.replaceRange(0...2,with:[0,1])
//swift3.0
array.replaceSubrange(0...2,with:[0,1])
//进行数组枚举遍历将输出(0,0)(1,1)(2,2)(3,3)(4,4)
//swift3.0中将枚举属性enumerate修改为enumerated()方法
foriteminarrayLet.enumerated(){
print(item)
}
vararraySort=[1,3,5,6,7]
//获取数组中的最大值
//swift2.2
//arraySort.maxElement()
//swift3.0
arraySort.max()
//获取数组中的最小值
//swift2.2
//arraySort.minElement()
//swift3.0
arraySort.min()
//从大到小排序
//swift2.2
//arraySort=arraySort.sort(>)
//swift3.0
arraySort=arraySort.sorted(isOrderedBefore:>)
//从小到大排序
//swift2.2
//arraySort=arraySort.sort(<)
//swift3.0
arraySort=arraySort.sorted(isOrderedBefore:<)
二、Set集合中的更改
Set集合中的修改示例如下:
//创建set集合
varset1:Set<Int>=[1,2,3,4]
//进行下标的移动
//获取某个下标后一个元素
//swlft2.2
//set1[set1.startIndex.successor()]
//swift3.0
set1[set1.index(after:set1.startIndex)]
//获取某个下标后几位的元素
//swift2.2
//set1[set1.startIndex.advancedBy(3)]
//swift3.0
set1[set1.index(set1.startIndex,offsetBy:3)]
//获取集合中的最大值
//swift2.2
//set1.maxElement()
//swift3.0
set1.max()
//获取集合中的最小值
//swift2.2
//set1.minElement()
//swift3.0
set1.min()
//移除集合中某个位置的元素
//swift2.2
//set1.removeAtIndex(set1.indexOf(3)!)
//swift3.0
set1.remove(at:set1.index(of:3)!)
varset3:Set<Int>=[1,2,3,4]
varset4:Set<Int>=[1,2,5,6]
//返回交集{1,2}
//swift2.2
//varsetInter=set3.intersect(set4)
//swift3.0
varsetInter=set3.intersection(set4)
//返回交集的补集{3,4,5,6}
//swift2.2
//varsetEx=set3.exclusiveOr(set4)
//swift3.0
varsetEx=set3.symmetricDifference(set4)
varset5:Set=[1,2]
varset6:Set=[2,3]
varset7:Set=[1,2,3]
varset8:Set=[1,2,3]
//判断是否是某个集合的子集set5是set7的子集返回ture
//swift2.2
//set5.isSubsetOf(set7)
//swift3.0
set5.isSubset(of:set7)
//判断是否是某个集合的超集set7是set5的超集返回ture
//swift2.2
//set7.isSupersetOf(set5)
//swift3.0
set7.isSuperset(of:set5)
//判断是否是某个集合的真子集set5是set7的真子集返回ture
//swift2.2
//set5.isStrictSubsetOf(set7)
//swift3.0
set5.isStrictSubset(of:set7)
//判断是否是某个集合的真超集set7不是set8的真超集返回false
//swift2.2
//set7.isStrictSupersetOf(set8)
//swift3.0
set7.isStrictSuperset(of:set8)
三、Dictionary字典中的更改
Dictionary字典中修改示例如下:
//通过键删除某个键值对 //swift2.2 //dic1.removeValueForKey(1) //swift3.0 dic1.removeValue(forKey:1)