Swift中的数组
//MARK:-
//MARK:- 数组的基本使用
/*
1、Swift数组类型是Array,是一个范型集合
2、分为可变数组和不可变数组
*/
//MARK:1、有值数组
var array0 = [1,2,3]
var array1 : Array = [1,2,3]
var array2 : Array<String> = ["dhq","hwj","dhn"]
var array3 : [Int] = [1,2,3]
//MARK:2、空数组
var array4 = []
var array5 = [Int]()
var array6 = Array<Int>()
array5.append(12)
array6.append(23)
print(array0,array1,array2,array3,array4,array5,array6)
//MARK:3、定义一个不可变数组
let array : [NSObject] = ["ptf",28]
//MARK:4、定义混合类型数组
/*
如果想明确表示数组中存放的是不同类型的数据, 可以使用Any关键字或则AnyObject, 表示数组中可以存放不同类型的数据
*/
var array7 : [Any] = [2,3,"asdf"]
print(array7)
//MARK:-
//MARK:- 数组的增删改查
//MARK:1、添加数据
array2.append("dhq")
array0 += [4]
array0 += array0[0...2]
//MARK:2、删除数据
array2.removeLast()
array2.removeAtIndex(2)
array1.removeAll(keepCapacity: true)//是否保持容量, 如果为true, 即便删除了容量依然存在, 容量是2的倍数
print(array1.capacity)
//MARK:3、修改数据
array2[1] = "hwjj"
//MARK:4、取值
print(array0)
//MARK:5、判断数组是否有值
print(array2.isEmpty)
//MARK:6、插入数据
array2.insert("daihuiqin", atIndex: 1)
print(array2)
//MARK:-
//MARK:- 数组的遍历:
//MARK:方式一:
for i in 0..<array2.count{
print(array2[i])
}
//MARK:方式二:
for item in array2 {
print(item)
}
//MARK:方式三:设置遍历区间
for item in array2[0..<2]{
print(item)
}
//MARK:方式四:遍历的同时取得下标值
for(index,name)in array2.enumerate(){
print(index)
print(name)
}
//MARK:-
//MARK:- 数组合并:只有相同类型的数组才能合并
var wArray = ["clh","hjf","wwh"]
var harray = array2 + wArray
print(harray)
//MARK:-
//MARK:- rang
/*
OC:
NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1, @2, @3, nil];
[arr removeObjectsInRange:NSMakeRange(0, 2)];
NSLog(@"%@", arr);
*/
var arr22 = [1, 2, 3]
arr22.removeRange(Range(start: 1, end: 2))
print("arr22=\(arr22)")
var arr23 = [1, 2, 3]
arr23.removeRange(0...0)
print(arr23)
// 其实Range就是半闭区间
var range = 0...5
//range = 99 // 通过报错可以推断出类型
print(range) // 通过打印也可以推断出类型
var range1:Range<Int> = 0...5
//var range2:Range<String>; // 必须遵守ForwardIndexType协议
// start 起点 end 终点
var range3:Range<Int> = Range(start: 0, end: 5)
var range4:Range<Int> = 0..<5
print(range1)
print(range3)
print(range4)
//MARK:-
//MARK:- 数组的批量操作
/*
数组的批量操作
OC:
NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1, @2, @3, nil];
NSRange range = NSMakeRange(0, 2);
[arr replaceObjectsInRange:range withObjectsFromArray:@[@99, @88, @77, @66]];
NSLog(@"%@", arr);
*/
var arr = [1, 2, 3]
//arr[0...1] = [99, 88]
// arr[0...1] = [99, 88, 77, 66]
// 等价于上一行代码
arr.replaceRange(0...1, with: [9,10])
print(arr)
arr.replaceRange(Range(start: 0, end: 1),with:[2,4,8])//半闭区间
print(arr)