一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希望未来技术之巅上有你们也有我。
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"]];
NSLog(@"array_11: %@",array_11);
NSArray *array_12 = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"myTextFile.txt" ofType:nil]];
NSLog(@"array_12: %@",array_12);
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];
删除元素
[array_2 removeObject:@2];
[array_2 removeAllObjects];
替换元素
[array_2 replaceObjectAtIndex:1 withObject:@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(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"]]);
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);
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"]
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)
var allZeros2 = [Int](repeating: 0, count: 5)
使用数组
数组长度
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")
}
修改元素
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()
|