//1、 数组:存放统一数据类型元素
//(1)、创建一个带类型的空数组(Int):
var array = [Int]()
array = [12,5,6]
//(string数组)
var arrStr = [String]()
arrStr = ["sdfsdf","sfsdfsdf","sdfsdf"]
// (2)、错误类型
//array = ["sdfd",2324,"sdfsdfdfs"] 存放统一类型数据
//var arreroor = [Int](12,45,66)
var arreroor = [Int](arrayLiteral: 12,45,66)
var arrvalue:[String] = ["sdfsdf","sdfdsf","sdfsdfsdf"]
//(3)、带着默认值和长度限制的数组:
var limateArr = Array(repeating:0.0,count:4)
print(limateArr)
//(4)数组合并使用+号做数组合并
arrStr + arrvalue
//arrvalue + arreroor//类型不匹配(string + Int)
String(describing: arrvalue) + String(describing: arreroor)
//(5)、数组的访问:
print("这个数组的元素个数是:\(arrvalue.count)")
//(6)、数组是否为空:
var emptyArr = [Int]()
if emptyArr.isEmpty {
print("is empty!")
}else{
print("is not empty!")
}
//(7)、拼接,添加 拼接到数组元素结尾
emptyArr.append(12)
print(emptyArr)
//(8)、使用+=做拼接
arrvalue += ["sdfsdf","dfgdfghfghfgh"]
//arrvalue += [1,45,5]//类型不匹配
//arreroor += 12 //类型不匹配
//(9)、下表访问:
arreroor += [12,343,566]
arreroor[1]
arreroor[0]
for number in arreroor {
print(number)
}
//(10)、替换
arrvalue[1...4] = ["a","b"]
print(arrvalue)
//(11)、插入:insert
arrvalue.insert("2", at: 1)
arrvalue.insert(String(2), at: 1)
print(arrvalue)
//(12)、移除remove,根据索引移除
arrvalue.remove(at: 0)
arrvalue.removeLast()
arrvalue.removeFirst()
arrvalue.removeAll()
//(13)、便利值和索引:
for (index,value) in arreroor.enumerated(){
print("元素的索引是:\(index),元素值是:\(value)")
}
//二、set 装无序的同一类型的元素,元素不能重复
//(1)、集合的创建
var lettileset = Set<String>()//创建空集合
print("集合的长度是:\(lettileset.count)")
//(2)、集合赋值
lettileset = ["sdsfsf","sdfsdf","dfdfgdfg","sdsfsf"]
lettileset = []
//(3)、集合特点
//同一集合中不会存在相同元素,存在相同元素不会报错
var intSet = Set<Int>()
intSet = [1,4,5,5]
//(4)、集合元素添加
//intSet.insert("sdfds")//类型不匹配
intSet.insert(2)//元素无序
print(intSet)
//intSet[0]取发错误
// 作业:写一个字符串类型的数组和集合,里面分别包含4个元素(区别一下数组和集合)
var noneTypeSet:Set = ["sdfsdf","dfdfgdf"]
//注意:
//var noneType:Set = []//写发错误
//var nonetype = Set()//写发错误
//(5)、集合的长度:
print("\(noneTypeSet.count)")
//(6)、集合是否为空:
if noneTypeSet.isEmpty{
print("空集合")
}else{
print("非空集合")
}
//(7)、插入(insert)
noneTypeSet.insert("adddddd")
//(8)、移除:remove()
noneTypeSet.remove("adddddd")
noneTypeSet.removeFirst()
//noneTypeSet.removeAll()
//(9)、是否包含:
if noneTypeSet.contains("dfdfgdf"){
print("存在")
}else{
print("不存在")
}
//(10)、集合的便利:
noneTypeSet.insert("age")
noneTypeSet.insert("zhang")
for value in noneTypeSet{
print("\(value)")
}
//(11)、返回有序数组
var oderArr = noneTypeSet.sorted()
print(oderArr)
//Int型的集合:
var intValueSet = Set<Int>(arrayLiteral: 1,3,5,7,3,2,1)
intValueSet = [23,454,23,545,13233]
var newIntSet = intValueSet.sorted()
print(newIntSet)
var valueqq:Set = [1,2,3,4,5]
var valueName:Set = [4,5,6]
//12、使用原有集合根据条件创建新的集合:
//使用两个集合都存在的值创建一个新的集合
var newValue = valueqq.intersection(valueName)
print(newValue)
//在一个集合中,但不在两个集合中,(除了两个集合共有的元素以外的元素)
var newSet = valueqq.symmetricDifference(valueName)
print(newSet)
//合并,出去元素中重复的元素
var unionSet = valueqq.union(valueName).sorted()
print(unionSet)
valueqq = [1,2,3,4,5]
valueName = [4,5,6]
//在一个集合,但不在另一个集合,创建一个新的集合
var subtractingSet = valueqq.subtracting(valueName).sorted()
print(subtractingSet)
valueqq = [4,5]
valueName = [4,5,6]
//13、集合的关系和相等:
//(1)、相等
var isEquel = valueqq == valueName
print(isEquel)
//(2)、集合是否包含:一个集合中的值是否被包含在另一个集合中
var isContain = valueqq.isSubset(of: valueName)
print(isContain)
//(3)、一个集合是否是另一个集合的子集
var isSubSet = valueqq.isStrictSubset(of: valueName)
print(isSubSet)
//(4)、一个集合是否是另一个集合的父集
var isSuperSet = valueName.isStrictSuperset(of: valueqq)
print(isSuperSet)
//(5)、判断两个集合是否不含有相同的值
var isJointSet = valueqq.isDisjoint(with: valueName)
print(isJointSet)
//字典:
var namesOfIntegers = [Int: String]()
namesOfIntegers = [:]
namesOfIntegers = [1:"sdfs",2:"sdsfsdf"]
var dic :[String:String] = [:]
let a:[String : String] = ["name":"sdfsdf"]
var b = [1:"sdfds",3:"sdfsdfsd"]