Swift中的数组,数组的为主使用

/*

//MARK:-

//MARK:-

 数组定义:

//MARAV4K:- 数组的核心选取

//MA奥迪Q5K:- 数组的骨干选用

 OC:

/*

/*

 有值数组

1、Swift数组类型是Array,是三个范型集结

1、斯威夫特数组类型是Array,是多个范型群集

 NSArray *arr0 = @[@1, @2, @3];

二、分为可变数组和不可变数组

贰、分为可变数组和不足变数组

 NSArray *arr1 = [NSArray arrayWithObjects:@1, @2, @3, nil];

*/

*/

 NSLog(@”%@”, arr1);

//MAPAJEROK:1、有值数组

//MACR-VK:一、有值数组

 

    var array0 = [1,2,3]

    var array0 = [1,2,3]

 空数组

    var array1 : Array = [1,2,3]

    var array1 : Array = [1,2,3]

 NSArray *arr2 = @[];

    var array2 : Array<String> = [“dhq”,”hwj”,”dhn”]

    var array2 : Array<String> = [“dhq”,”hwj”,”dhn”]

 NSArray *arr3 = [NSArray array];

    var array3 : [Int] = [1,2,3]

    var array3 : [Int] = [1,2,3]

 NSLog(@”%@”, arr3);

 

 

 

//MARK:2、空数组

//MARK:2、空数组

 不可变数组:NSArray

    var array4  = []

    var array4  = []

 可变数组:NSMutableArray

    var array5 = [Int]()

    var array5 = [Int]()

*/

    var array6 = Array<Int>()

    var array6 = Array<Int>()

 

    array5.append(12)

    array5.append(12)

//有值数组

    array6.append(23)

    array6.append(23)

var arr0 = [1,2,3]

    print(array0,array1,array2,array3,array4,array5,array6)

    print(array0,array1,array2,array3,array4,array5,array6)

var arr1: Array = [1,2,3]

 

 

var arr2: Array<Int> = [1,2,3]

//MA奥迪Q叁K:3、定义二个不足变数组

//MA奇骏K:叁、定义2个不得变数组

var arr3: [Int] = [1,2,3]

    let array : [NSObject] = [“ptf”,28]

    let array : [NSObject] = [“ptf”,28]

// var arr4: Int[] = [1,2,3] // 早期写法 已屏弃

 

 

 

//MAXC90K:四、定义混合类型数组

//MA凯雷德K:4、定义混合类型数组

//空数组

/*

/*

//var arr5 = [] // 已废弃

万1想明确表示数组中存放的是见仁见智品类的数码,
可以使用Any关键字或则AnyObject, 表示数组中得以存放差别门类的多少

假使想显著表示数组中存放的是见仁见智类其他数目,
能够采用Any关键字或则AnyObject, 表示数组中能够存放不相同类型的数额

var arr6 = [Int]()

*/

*/

var arr7 = Array<Int>()

    var array7 : [Any] = [2,3,”asdf”]

    var array7 : [Any] = [2,3,”asdf”]

print(arr7)

    print(array7)

    print(array7)

 

 

 

//不可变数组

//MARK:- 

//MARK:- 

let arr8 : [Int] = []

//MAXC90K:- 数组的增加和删除改查

//MAWranglerK:- 数组的增加和删除改查

//可变数组

//MA翼虎K:一、添增加少

//MA途观K:一、添加数量

var arr9 : [String] = [String]()

    array2.append(“dhq”)

    array2.append(“dhq”)

 

    array0 += [4]

    array0 += [4]

/*

    array0 += array0[0…2]

    array0 += array0[0…2]

 成分类型

 

 

 OC:

//MA福睿斯K:二、删除数据

//MAOdysseyK:二、删除数据

 NSArray *arr = @[@1, @”lnj”, @1.75];

    array2.removeLast()

    array2.removeLast()

 NSLog(@”%@”, arr);

    array2.removeAtIndex(2)

    array2.removeAtIndex(2)

*/

    array1.removeAll(keepCapacity: true)//是不是保持体积, 假设为true,
就算删除了容积依然留存, 体量是二的倍数

    array一.removeAll(keepCapacity: true)//是或不是维持容积, 若是为true,
纵然删除了容积依旧存在, 容积是2的翻番

var arr10 = [1,”hjq”,1.65] as [Any]

    print(array1.capacity)

    print(array1.capacity)

print(arr10)

//MA奥德赛K:3、修改数据

//MAXC90K:三、修改数据

print(arr10[2])

    array2[1] = “hwjj”

    array2[1] = “hwjj”

// 打字与印刷结果:  [1, “hjq”, 1.6499999999999999]

 

 

// 1.65

//MARK:4、取值

//MARK:4、取值

 

    print(array0)

    print(array0)

//要是想驾驭表示数组中存放的是分化门类的多寡, 能够行使Any关键字,
表示数组中能够存放不相同等级次序的数量

 

 

var arr11:Array<Any> = [Swift中的数组,数组的为主使用。1,”hjq”,1.75]

//MA奥迪Q5K:5、判定数组是不是有值

//MA卡宴K:5、决断数组是还是不是有值

print(arr11)

    print(array2.isEmpty)

    print(array2.isEmpty)

print(arr11[2])

 

 

// 打字与印刷结果:  [1, “hjq”, 1.75]

//MA奥德赛K:六、插入数据

//MA奥德赛K:六、插入数据

// 1.75

    array2.insert(“daihuiqin”, atIndex: 1)

    array2.insert(“daihuiqin”, atIndex: 1)

 

    print(array2)

    print(array2)

/*

 

 

 数组操作

//MARK:-

//MARK:-

 1.获取长度

//MACR-VK:- 数组的遍历:

//MAMuranoK:- 数组的遍历:

 OC:

//MARK:方式一:

//MARK:方式一:

 NSArray *arr = @[@1, @2, @3];

    for i in 0..<array2.count{

    for i in 0..<array2.count{

 NSLog(@”%tu”, arr.count);

        print(array2[i])

        print(array2[美高梅开户网址,i])

*/

    }

    }

var arr12 = [1,2,3]

 

 

print(arr12.count)

//MARK:方式二:

//MARK:方式二:

 

    for item in array2 {

    for item in array2 {

/*

        print(item)

        print(item)

 二.料定是还是不是为空

    }

    }

 OC:

 

 

 NSArray *arr = @[];

//MA揽胜K:方式三:设置遍历区间

//MAHavalK:格局叁:设置遍历区间

 NSLog(@”%d”, arr.count != 0);

    for item in array2[0..<2]{

    for item in array2[0..<2]{

*/

        print(item)

        print(item)

var arr13 = [1,2,3]

    }

    }

print(arr13.isEmpty)

 

 

 

//MAPRADOK:格局四:遍历的还要获得下标值

//MA君越K:格局四:遍历的还要获取下标值

/*

    for(index,name)in array2.enumerate(){

    for(index,name)in array2.enumerate(){

 3.检索

        print(index)

        print(index)

 OC:

        print(name)

        print(name)

 NSArray *arr = @[@1, @2, @3];

    }

    }

 NSLog(@”%@”, arr[0]);

 

 

*/

//MARK:-

//MARK:-

var arr14 = [1,2,3,4]

//MAPAJEROK:- 数组成并:唯有同样类其余数组技巧集合

//MAWranglerK:- 数重组并:唯有同样等级次序的数组技巧集结

print(arr14[0])

    var wArray = [“clh”,”hjf”,”wwh”]

    var wArray = [“clh”,”hjf”,”wwh”]

 

    var harray = array2 + wArray

    var harray = array2 + wArray

/*

    print(harray)

    print(harray)

 4.追加

 

 

 OC:

//MARK:-

//MARK:-

 NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1, @2, @3,
nil];

//MARK:- rang

//MARK:- rang

 [arr addObject:@4];

/*

/*

 NSLog(@”%@”, arr);

OC:

OC:

*/

NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1, @2, @3,
nil];

NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1, @2, @3,
nil];

var arr15 = [1,2,3]

[arr removeObjectsInRange:NSMakeRange(0, 2)];

[arr removeObjectsInRange:NSMakeRange(0, 2)];

arr15.append(4)

NSLog(@”%@”, arr);

NSLog(@”%@”, arr);

print(arr15)

*/

*/

 

    var arr22 = [1, 2, 3]

    var arr22 = [1, 2, 3]

var arr16 = [1,2,3]

    arr22.removeRange(Range(start: 1, end: 2))

    arr22.removeRange(Range(start: 1, end: 2))

arr16 += [4]

    print(“arr22=\(arr22)”)

    print(“arr22=\(arr22)”)

print(arr16)

 

 

arr16 += arr16[0…1] // 也得以依附自个儿数组成分追加

    var arr23 = [1, 2, 3]

    var arr23 = [1, 2, 3]

print(arr16)

    arr23.removeRange(0…0)

    arr23.removeRange(0…0)

 

    print(arr23)

    print(arr23)

/*

 

 

 5.插入

// 其实Range便是半闭区间

// 其实Range正是半闭间隔

 OC:

    var range = 0…5

    var range = 0…5

 NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1, @2, @3,
nil];

    //range = 99 // 由此报错能够猜想出类型

    //range = 99 // 经过报错可以测算出类型

 [arr insertObject:@4 atIndex:0];

    print(range) // 通过打字与印刷也得以预计出类型

    print(range) // 通过打印也得以猜度出类型

 NSLog(@”%@”, arr);

 

 

*/

    var range1:Range<Int> = 0…5

    var range1:Range<Int> = 0…5

var arr17 = [1,2,3]

    //var range二:Range<String>; // 必须信守ForwardIndexType协议

    //var range二:Range<String>; // 必须遵从ForwardIndexType协议

arr17.insert(4, at: 0)

    // start 起点 end 终点

    // start 起点 end 终点

print(arr17)

    var range3:Range<Int> = Range(start: 0, end: 5)

    var range3:Range<Int> = Range(start: 0, end: 5)

 

    var range4:Range<Int> = 0..<5

    var range4:Range<Int> = 0..<5

/*

    print(range1)

    print(range1)

 6.更新

    print(range3)

    print(range3)

 OC:

    print(range4)

    print(range4)

 NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1, @2, @3,
nil];

 

 

 arr[0] = @8;

//MARK:-

//MARK:-

 NSLog(@”%@”, arr);

//MA福睿斯K:- 数组的批量操作

//MA福睿斯K:- 数组的批量操作

*/

/*

/*

var arr18 = [1,2,3]

数组的批量操作

数组的批量操作

arr18[0] = 0

OC:

OC:

print(arr18)

NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1, @2, @3,
nil];

NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1, @2, @3,
nil];

 

NSRange range = NSMakeRange(0, 2);

NSRange range = NSMakeRange(0, 2);

/*

 

 

 7.删除

[arr replaceObjectsInRange:range withObjectsFromArray:@[@99, @88, @77,
@66]];

[arr replaceObjectsInRange:range withObjectsFromArray:@[@99, @88, @77,
@66]];

 OC:

NSLog(@”%@”, arr);

NSLog(@”%@”, arr);

 NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1, @2, @3,
nil];

*/

*/

 [arr removeObject:@1];

    var arr = [1, 2, 3]

    var arr = [1, 2, 3]

 NSLog(@”%@”, arr);

    //arr[0…1] = [99, 88]

    //arr[0…1] = [99, 88]

 

//    arr[0…1] = [99, 88, 77, 66]

//    arr[0…1] = [99, 88, 77, 66]

 NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1, @2, @3,
nil];

    // 等价于上一行代码

    // 等价于上一行代码

 [arr removeLastObject];

    arr.replaceRange(0…1, with: [9,10])

    arr.replaceRange(0…1, with: [9,10])

 NSLog(@”%@”, arr);

    print(arr)

    print(arr)

 

    arr.replaceRange(Range(start: 0, end: 1),with:[2,4,8])//半闭区间

    arr.replaceRange(Range(start: 0, end: 1),with:[2,4,8])//半闭区间

 NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1, @2, @3,
nil];

    print(arr)

    print(arr)

 [arr removeAllObjects];

 

 

 NSLog(@”%@”, arr);

*/

var arr19 = [1,2,3]

arr19.remove(at: 0)

print(arr19)

 

var arr20 = [1,2,3,4]

arr20.removeLast()

print(arr20)

 

var arr21 = [1,2,3,4]

arr21.removeFirst()

print(arr21)

 

var arr22 = [1,2,3,4]

arr2贰.removeAll(keepingCapacity: true) // 是还是不是维持容积, 假使为true,
固然去除了体量依旧存在, 体积是二的倍数

print(arr22)

print(arr22.capacity)

//注意: 若是数组是2个不可变数组无法更新/插入和删除

//第二个本子的不足变数组是足以修改的

 

/*

 Range

 OC:

 NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1, @2, @3,
nil];

 [arr removeObjectsInRange:NSMakeRange(0, 2)];

 NSLog(@”%@”, arr);

*/

 

//移除某区间地方的数组成分

var arr23 = [1,2,3]

//arr22.removeRange(Range(start: 0, end: 1)) 2.0写法 已废弃

arr23.removeSubrange(0…1)

print(arr23)

 

var arr24 = [1,2,3]

arr24.replaceSubrange(0..<1, with: [8])

print(arr24)

 

// 其实Range正是半闭距离

var range = 0…5

//range = 9玖 // 透过报错能够测算出类型

print(range) // 通过答应也得以猜测出类型

 

/// 那一个知识点要求再追究1遍 range

//var range1:Range<Int> = 0…5

//var range二:Range<String>; // 必须服从ForwardIndexType协议

// start 起点 end 终点

//var range3:Range<Int> = Range(start: 0, end: 5)

//var range4:Range<Int> = 0..<5

 

//print(range3)

//print(range4)

 

/*

 数组的批量操作

 OC:

 NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1, @2, @3,
nil];

 NSRange range = NSMakeRange(0, 2);

 // [arr replaceObjectsInRange:range withObjectsFromArray:@[@99,
@88]];

 [arr replaceObjectsInRange:range withObjectsFromArray:@[@99, @88,
@77, @66]];

 NSLog(@”%@”, arr);

 */

var arr = [1,2,3]

//arr[0…1] = [99,98]

//arr[0…1] = [99,88,77]

//等价于上一行代码

arr.replaceSubrange(0…1, with: [99,88,77])

print(arr)

 

/*

 4.遍历

 OC:

 NSArray *arr = @[@1, @2, @3];

 for (int i = 0; i < arr.count; i++) {

 NSLog(@”%@”, arr[i]);

 }

 

 for (NSNumber *number in arr) {

 NSLog(@”%@”, number);

 }

 */

var arr1 = [1,2,3]

// 2.0

//for var i = 0 ; i < arr1.count ; i++

//{

//    print(arr1[i])

//}

// 3.0

for i in 0..<arr1.count

{

    print(arr1[i])

}

for number in arr1

{

    print(number)

}

 

//收取数组中有些区间范围的值

var arr2 = [1,2,3]

for number in arr2[0..<3]

{

    print(number)

}

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图