/*
集合(数组和字典)
数组:
1.数组的概念和定义
var 数组名:array<数组元素的类型> =【元素1,元素2】
var
2.数组的操作(主要)
3.
*/
//定义
var array = [2,3,4,6]
var array2:Array = [2,3,4,6]//推荐
var array3:Array<Int> = [2,3,4,5]
var array4:[Int] = [2,3,4,5]
var array5:[String] = ["2","3","4","5"]
//初始换一个新数组
var array6 = []
//一个数组的初始化方法(面向对象的过程中会有介绍)
var array7:Array = Array(count: 2, repeatedValue: 3)
//在swift中数组可以储存不同类型的数据么?可以
var array8:Array = ["af",1]
//Any 关键字可以表示数组中元素的不同类型,Any表示泛型,即是任何类型
//访问数组元素
array[1]
//数组元素的个数
array.count
//全部元素输出
for var i = 0;i<array.count; i++
{
println(array[i])
}
//数组的操作
//增
array.append(7) //数组后面插进去
for var i = 0;i<array.count; i++
{
println(array[i])
}
array.insert(8, atIndex:3)//指定位置插进数据,在指定的第 3位后面再插进去
for var i = 0;i<array.count; i++
{
println(array[i])
}
//删
array.removeAtIndex(3)//删除指定位置
array.removeLast()//删除最后一个元素
array.removeRange(0..<1)//删除指定区间
for var i = 0;i<array.count; i++
{
println(array[i])
}
array.removeAll(keepCapacity:true)//删除数组全部元素
for var i = 0;i<array.count; i++
{
println(array[i])
}
//改
array2[3] =5 //直接改单个字符
array2.replaceRange(0..<3, with: [8,8,8])//可以改整个区间
for var i = 0;i<array2.count; i++
{
println(array2[i])
}
//有一个字符窜,有一个大的字符串数组,找出此字符串中所有的前缀含有此子字符串的字符串的子串数组
/*
"he"
["hello","hel","dsf","he","dfadf"]
["hello","hel","he"]
*/
var array10:Array = ["hello","hel","dsf","he","dfadf"]
var str = "he"
var a:[String] = []
for var i = 0; i < array10.count ;i++
{
if array10[i].hasPrefix("h")
{
a.append(array10[i])
}
}
a
for var i = 0; i < a.count/2;i++
{
var tem:[String] = [""]
tem[0] = a[i]
a[i] = a[a.count-1-i]
a[a.count-1-i] = tem[0]
}
a
//遍历
for item in a {println(item);}
//元组遍历
for (index , value)inenumerate(a)
{
println("the\(index+1) value is\(value)")
}
//老师评讲
var targetArray:Array = ["hello","hel","dsf","he","dfadf"]
var targetString = "he"
var resultArray:NSMutableArray = []//OC语言中的可变数组
for var i = 0;i < targetArray.count; i++ {
iftargetArray[i].hasPrefix(targetString) {
// resultArray.append(targetArray[i])
resultArray.addObject(targetArray[i])//向可变数组添加元素
}
}
for var i = 0; i < resultArray.count; i++ {
for var j = 0 ; j < resultArray.count-1-i; j++ {
var string1 = resultArray[j]as String
var string2 = resultArray[j+1]as String
if string1 > string2 {
resultArray.exchangeObjectAtIndex(j, withObjectAtIndex: j+1)//利用OC里面可变数组的api,交换数组元素位置
}
}
}
for var i = 0; i < resultArray.count; i++ {
println(resultArray[i])
}
/*
字典
字典是一个主城键(key)值(value)对的集合,一个键对应一个值,即是键值对必须成对出现,其中键不能重复,无序的
字典的定义
var 字典名:Dictionary<键类型,值类型> =【键:值,健:值,...】
*/
// 键 值
var dictionary = [2011136211:"张三",2011136212:"李四"]
var dictionary1:Dictionary = [2011136211:"张三",2011136212:"李四"]//推荐
var dictionary2:Dictionary<Int,String> = [2011136211:"张三",2011136212:"李四"]
//通常以字符窜为键(json语法)
var dictionary3:Dictionary = ["SID":"2011136211","name":"李四"]
//访问 通过键值来访问
dictionary3["SID"]
dictionary3["SID"]!
dictionary3.count//字典键值的个数
for key indictionary3.keys{println(dictionary3[key]!)}//遍历
//增加
//直接增加一个新的键值对
dictionary3["age"] ="22"
for key indictionary3.keys{println(dictionary3[key]!)}//遍历
//改
dictionary3["age"] ="25"
dictionary3.updateValue("李四", forKey:"name")
for key indictionary3.keys{println(dictionary3[key]!)}//遍历
//删
dictionary3.removeValueForKey("age")
dictionary3.removeAtIndex(dictionary3.startIndex)
for key indictionary3.keys{println(dictionary3[key]!)}//遍历
dictionary3.removeAll(keepCapacity:true)
for key indictionary3.keys{println(dictionary3[key]!)}//遍历