IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> OC/Swift 基础 数组Array(源码) -> 正文阅读

[移动开发]OC/Swift 基础 数组Array(源码)

一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希望未来技术之巅上有你们也有我。

OC

创建方法

方法说明
array创建数组
arrayWithArray通过一个数组创建另一个数组
arrayWithContentsOfFile创建数组将内容设置为指定文件内容
arrayWithContentsOfURL创建数组将内容设置为url指定内容
arrayWithObject创建具有一个元素的数组
arrayWithObjects创建具有多个元素的数组
init初始化数组

不可变(可变)数组的方法

方法说明
containsObject判断数组中是否包含某个元素
count计算元素个数
firstObjectCommonWithArray获取首元素
lastObject获取最后一个元素
objectAtIndex获取在某个位置的数组元素
objectAtIndexs获取数组元素
arrayByAddingObject在数组末尾添加元素
arrayByAddingObjectsFromArray在数组的末尾添加另一个数组
subarrayWithRange数组的一部分创建数组
isEqualToArray比较数组是否相等
indexOfObject返回元素所在的位置
indexOfObjectIdenticalTo返回元素所在的位置
componentsJoinedByString数组转换为字符串
componentsSeparatedByString字符串转换为数组
sortedArrayHint数组转换为数据对象
writeToFile将数组中的内容写入到文件
writeToUrl将数组中的内容写入到url
objectEnumerator数组元素从前向后访问
reverseObjectEnumerator数组元素从后向前访问
sortedArrayUsingFunction实现数组元素的简单排序
pathsMatchingExtensions查看某文件夹下的东西

可变数组(NSMutableArray)

方法说明
arrayWithCapacity创建一个具有固定长度的可变数组
initWithCapacity初始化一个具有固定长度的可变数组
addObject添加数组元素
addObjectsFromArray用数组创建可变数组
removeObject删除指定的元素
removeAllObjects删除可变数组中的所有元素
removeLastObject删除可变数组中的最后一个元素
removeObjectAtIndex删除指定位置的元素
removeObjectsAtIndex删除可变数组中的元素
removeObjectsInRange删除某个范围内的可变数组中的元素
removeObjectsInArray删除与另一个数组相同的元素
replaceObjectAtIndex替换可变数组中某一位置的元素
replaceObjectsAtIndexes替换可变数组中的多个元素
replaceObjectsInRange替换某一范围的数组元素
insertObject在某一位置插入数组元素
insertObjects在某一位置或范围插入另一数组元素
exchangeObjectAtIndex交换两个元素
setArray设置可变数组中内容

不可变数组

不可变数组的创建

//创建数组
NSArray *array_10 = [NSArray array];

//通过一个数组创建另一个数组
NSArray *array_11 = [NSArray arrayWithArray:@[@"1",@"2",@"3",@"4"]];//等于直接 @[@"1",@"2",@"3",@"4"] 一样的
NSLog(@"array_11: %@",array_11);

//创建数组将内容设置为指定文件内容
NSArray *array_12 = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"myTextFile.txt" ofType:nil]];
NSLog(@"array_12: %@",array_12);

//创建数组将内容设置为url指定内容
NSArray *array_13 = [NSArray arrayWithContentsOfURL:[NSURL URLWithString:@"https://www.baidu.com"]];
NSLog(@"array_13: %@",array_13);

//创建具有一个元素的数组
NSArray *array_14 = [NSArray arrayWithObject:@"1"];
NSLog(@"array_14: %@",array_14);

//创建具有多个元素的数组
NSArray *array_15 = [NSArray arrayWithObjects:@"1",@"2", nil];
NSLog(@"array_15: %@",array_15);

//初始化数组
NSArray *array_16 = [[NSArray alloc] init];
NSLog(@"array_16: %@",array_16);

创建

NSArray *array_0 = @[@"1",@"2",@"3",@"4"];

取数组中的第一个元素

NSLog(@"first object:%@",array_0.firstObject);

取数组中的最后一个元素

NSLog(@"last object:%@",array_0.lastObject);

字符串分割成数组

NSString *string=@"I love you";
NSArray *array1 = [string componentsSeparatedByString:@" "];//字符串分割成数组
NSLog(@"%@",array1);

数组拼接

NSString *string1 = [array1 componentsJoinedByString:@" "];

可变数组

创建

NSMutableArray *array_2 = [NSMutableArray array];

添加元素

[array_2 addObject:@1];

修改数据

array_2[0] = @2;

插入元素

[array_2 insertObject:@2 atIndex:1];//插入到2的位置,结果是对象2,在下标2的位置。

删除元素

[array_2 removeObject:@2];//将数组中是2的元素,全部删掉
[array_2 removeAllObjects];//删除所有元素,得到的结果是个空数组

替换元素

[array_2 replaceObjectAtIndex:1 withObject:@22];//将下标1的元素替换成22

排序

NSArray *array_3 = @[@"5",@"3",@"4",@"1",@"2"];
NSArray *resultArray = [array_3 sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@",resultArray);

遍历

//遍历 数组
for(NSInteger i=0; i<array_3.count; i++){
    NSLog(@"object:%@",array_3[i]);
}

//遍历 for in
for(NSString *object in array_3){
    NSLog(@"%@",object);
}

//遍历 枚举器
NSEnumerator *enumerator = [array_3 objectEnumerator];
id object = [enumerator nextObject];
while(object){
    NSLog(@"object:%@",object);
    object = [enumerator nextObject];
}

//遍历 枚举器   倒序打印
NSEnumerator *enumerator = [array_3 reverseObjectEnumerator];
id object = [enumerator nextObject];
while(object){
    NSLog(@"object:%@",object);
    object = [enumerator nextObject];
}
NSMutableArray *array_2 = [NSMutableArray arrayWithArray:@[@"1",@"2",@"3",@"4",@"9",@"10",@"11"]];

//判断数组中是否包含某个元素
if ([array_2 containsObject:@"1"]) {
    NSLog(@"true");
}

//计算元素个数
NSLog(@"计算元素个数: %ld",array_2.count);

//领个数组比较,返回首个相同的元素
NSLog(@"领个数组比较,返回首个相同的元素: %@",[array_2 firstObjectCommonWithArray:@[@"4",@"5"]]);

//在数组末尾添加元素
NSLog(@"在数组末尾添加元素: %@",[array_2 arrayByAddingObject:@"5"]);

//在数组的末尾添加另一个数组
NSLog(@"在数组的末尾添加另一个数组: %@",[array_2 arrayByAddingObjectsFromArray:@[@"5",@"6",@"7",@"8"]]);

//数组的一部分创建数组  index:3   取2:两个
NSLog(@"数组的一部分创建数组: %@",[array_2 subarrayWithRange:(NSRange){3,2}]);

//比较数组是否相等
NSMutableArray *array_4 = [NSMutableArray arrayWithArray:@[@"1",@"2",@"3",@"4",@"9",@"10",@"11"]];
if ([array_2 isEqualToArray:array_4.copy]) {
    NSLog(@"true");
}

//返回元素所在的位置
NSLog(@"返回元素所在的位置: %lu",[array_2 indexOfObject:@"3"]);
    
//返回元素所在的位置
NSLog(@"返回元素所在的位置: %lu",[array_2 indexOfObjectIdenticalTo:@"3"]);

//数组转换为字符串
NSLog(@"数组转换为字符串: %@",[array_2 componentsJoinedByString:@","]);

//数组转换为数据对象 (数组转换成二进制)
NSData *data = [array_2 sortedArrayHint];
NSLog(@"%@", data);

//将数组中的内容写入到文件
BOOL result_0 = [array_2 writeToFile:[[NSBundle mainBundle] pathForResource:@"myTextFile.txt" ofType:nil] atomically:YES];
NSLog(@"result_0: %ld", (long)result_0);

//将数组中的内容写入到url
BOOL result_1 = [array_2 writeToURL:[NSURL URLWithString:@"https://www.baidu.com"] atomically:YES];
NSLog(@"result_1: %ld", (long)result_1);
//实现数组元素的简单排序
NSMutableArray *array_5 = [NSMutableArray arrayWithArray:@[@"1",@"2",@"3",@"4",@"9",@"10",@"11"]];
NSArray* sortedArray = [array_5 sortedArrayUsingFunction:my_compare_function context:NULL];
NSLog(@"sortedArray: %@", sortedArray);

NSInteger my_compare_function(id obj1, id obj2, void* context) {
    if(obj1 < obj2) return NSOrderedAscending;
    else if(obj1 > obj2) return NSOrderedDescending;
    else return NSOrderedSame;
}

打乱顺序

NSMutableArray*arr = [NSMutableArray arrayWithArray:@[@"1",@"2",@"3",@"4",@"5",@"6",@"7"]];
//打乱临时数组的歌曲
[arr sortUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
	return (NSInteger)arc4random() % 3 - 1;
}];
NSLog(@"arr: %@",arr);

Swift

创建数组

var numbers = [0,1,2,3,4,5]
var vowels  = ["A","B","C","D","E"]

//初始化 数组的类型(以Int为例 ):[Int] 或者 Array<Int>
var numbers_1: [Int] = [0,1,2,3,4,5]
var numbers_2: Array<Int> = [0,1,2,3,4,5]

// 空数组
var emptyArray2:Array<Int> = []
var emptyArray3:Array<Int> = Array<Int>()
var emptyArray4 = [Int]()
var emptyArray5 = Array<Int>()

// 创建具有默认值的数组(相同元素的数组)
var allZeros1 = Array<Int>(repeating: 0, count: 5) //[0,0,0,0,0]
var allZeros2 = [Int](repeating: 0, count: 5) //[0,0,0,0,0]

使用数组

数组长度

numbers.count

判空

numbers.isEmpty

获取元素

numbers[2]

获取第一个元素和最后一个元素,返回的是可选型

numbers.first
numbers.last

使用范围

numbers[2..<4]

是否包含

numbers.contains(1)

let letter = 1
if numbers.contains( letter ){
    print("\(letter) is a value")
}else{
    print("\(letter) is not a value")
}

遍历

for index in 0..<numbers.count{
    print("遍历_0: \(numbers[index])")
}

// 遍历
for number in numbers{
    print(number)
    print("遍历_1: \(number)")
}

// 遍历
for (index, number) in numbers.enumerated(){
    //遍历数组索引和元素
    print("遍历_2: \(index+1): \(number)")
}

比较

let oneToFive = [0,1,2,3,4,5]
if numbers == oneToFive {
    print("true")//true
}

修改元素

numbers[1] = 99
print("修改元素: \(numbers)")

添加元素

numbers.append(6)
print("添加后: \(numbers)")

numbers += [7]
print("添加后: \(numbers)")

numbers.insert(8, at: 1)
print("添加后: \(numbers)")

删除

var courses = ["A", "B", "C", "D", "E", "Q", "F", "G"]
courses.removeSubrange(3..<4)
print("区间删除: \(courses)")

删除第一个

numbers.removeFirst()

删除最后一个

numbers.removeLast()

删除指定元素

numbers.remove(at: 3)

删除全部元素

numbers.removeAll()

打乱顺序

numbers.shuffle()
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:26:57  更:2022-10-22 21:30:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 22:43:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码