Swift:(四)、数组、集合、字典

//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"]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值