数组的价值
:1.
存储多个元素
2.
存储元素只能是对象
,
对象可以是不同类型的
3.
数组是一个有序的集合
4.
数组中的元素可以重复
,
而且重复的对象会成为数组元素
2.添加元素
[arr1 addObject:@"ff"];
NSLog(@"%@",arr1);
3.插入元素
[arr1 insertObject:@"frank" atIndex:1];
NSLog(@"%@",arr1);
4.删除元素
// 删除一个元素
[arr1 removeObjectAtIndex:2];
NSLog(@"%@",arr1);
// 删除全部元素
// [arr1 removeAllObjects];
// NSLog(@"%@",arr1);
5.替换元素
[arr1 replaceObjectAtIndex:1 withObject:@"wu"];
NSLog(@"%@",arr1);
6.交换指定交换的两个元素
[arr1 exchangeObjectAtIndex:2 withObjectAtIndex:3];
NSLog(@"%@",arr1);
7.排序,对原来数组进行排序
[arr1 sortUsingSelector:@selector(compare:)];
NSLog(@"%@",arr1);
8.快速遍历
// 如果数组中的对象类型不同 , 取出来的元素类型各异 , 所以我们统一使用一个对象的泛型 ,id 类型 , 可以代表所有的对象类型
for (id str1 in arr1) {
NSLog(@"%@",str1);
NSArray 类中一些方法
//nil 作为数组元素存放的结束标志 , 遇到 nil 之后的元素 , 都不会放入数组中
NSArray * arr1 = [NSArray arrayWithObjects:@"aa",@"bb",@"cc",@"dd",@"ee",@"ff", nil];
NSLog(@"arr1 = %@",arr1);
2. 使用初始化方法
NSArray *arr2 = [[NSArray alloc] initWithObjects:@"da",@"fb",@"ec",@"md",@"ae",@"ff",nil];
NSLog(@"arr2 = %@",arr2);
1.创建数组对象
1.
使用便利构造器
//arrayWithObjects
创建对象时
,
可以指定多个对象元素
,
元素与元素之间通过逗号间隔
//nil 作为数组元素存放的结束标志 , 遇到 nil 之后的元素 , 都不会放入数组中
NSArray * arr1 = [NSArray arrayWithObjects:@"aa",@"bb",@"cc",@"dd",@"ee",@"ff", nil];
NSLog(@"arr1 = %@",arr1);
2. 使用初始化方法
NSArray *arr2 = [[NSArray alloc] initWithObjects:@"da",@"fb",@"ec",@"md",@"ae",@"ff",nil];
NSLog(@"arr2 = %@",arr2);
2.获取元素 个数
NSUInteger count = [arr2 count];
NSLog(@"%lu",count);
NSLog(@"%lu",count);
3.根据索引值获取对象
//1. 获取指定下标对应的元素
NSString *str = [arr2 objectAtIndex:4];
NSLog(@"%@",str);
//firstObject 与 lastObject 方法比 objiectAtIndex: 方法 好在当数组元素为空时 , 会返回 nil, 而 objectAtIndex: 则会造成程序 crash.
//1. 获取指定下标对应的元素
NSString *str = [arr2 objectAtIndex:4];
NSLog(@"%@",str);
//firstObject 与 lastObject 方法比 objiectAtIndex: 方法 好在当数组元素为空时 , 会返回 nil, 而 objectAtIndex: 则会造成程序 crash.
//2.
获取数组中的第一个元素
NSString *str1 = [arr2 firstObject];
NSLog(@"%@",str1);
//3. 获取数组中的最后一个元素 ;
NSString *str2 = [arr2 lastObject];
NSLog(@"%@",str2);
NSString *str1 = [arr2 firstObject];
NSLog(@"%@",str1);
//3. 获取数组中的最后一个元素 ;
NSString *str2 = [arr2 lastObject];
NSLog(@"%@",str2);
4.获取对象在数组中的索引值
NSUInteger index =[arr2 indexOfObject:@"dd"];
NSLog(@"%lu",index);
5.判断是否包含某个对象
BOOL isExist =[arr2 containsObject:@"aa"];
NSLog(@"%d",isExist);
6.数组排序
NSArray *sortArr = [arr2 sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@",sortArr);
NSUInteger index =[arr2 indexOfObject:@"dd"];
NSLog(@"%lu",index);
5.判断是否包含某个对象
BOOL isExist =[arr2 containsObject:@"aa"];
NSLog(@"%d",isExist);
6.数组排序
NSArray *sortArr = [arr2 sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@",sortArr);
7.快速遍历(快速枚举
)
/* for (int i = 0; i < [arr2 count] ; i ++) {
NSString *str = [arr2 objectAtIndex:i];
NSLog(@"%@",str);
}*/
/**
* forin 快速枚举 ( 快速遍历 ) 用于将集合中的元素遍历出来 .
type *object type 数组中的元素的类型 object 起一个对象的名字 ( 自己拟定 )
collection 集合 ( 也就是大容器 , 数组 , 字典 , 或者集合 )
*/
for (NSString *str in arr2) {
NSLog(@"%@",str);
}
/* for (int i = 0; i < [arr2 count] ; i ++) {
NSString *str = [arr2 objectAtIndex:i];
NSLog(@"%@",str);
}*/
/**
* forin 快速枚举 ( 快速遍历 ) 用于将集合中的元素遍历出来 .
type *object type 数组中的元素的类型 object 起一个对象的名字 ( 自己拟定 )
collection 集合 ( 也就是大容器 , 数组 , 字典 , 或者集合 )
*/
for (NSString *str in arr2) {
NSLog(@"%@",str);
}
8.获取子数组
NSArray *arr3 = [arr2 subarrayWithRange:NSMakeRange(3, 3)];
NSLog(@"%@",arr3);
NSLog(@"%@",arr3);
NSMutableArray 类中一些方法
1. 创建数组对象
NSMutableArray *arr1 = [NSMutableArray arrayWithObjects:@"aa",@"bb",@"cc",@"dd", nil];2.添加元素
[arr1 addObject:@"ff"];
NSLog(@"%@",arr1);
3.插入元素
[arr1 insertObject:@"frank" atIndex:1];
NSLog(@"%@",arr1);
4.删除元素
// 删除一个元素
[arr1 removeObjectAtIndex:2];
NSLog(@"%@",arr1);
// 删除全部元素
// [arr1 removeAllObjects];
// NSLog(@"%@",arr1);
5.替换元素
[arr1 replaceObjectAtIndex:1 withObject:@"wu"];
NSLog(@"%@",arr1);
6.交换指定交换的两个元素
[arr1 exchangeObjectAtIndex:2 withObjectAtIndex:3];
NSLog(@"%@",arr1);
7.排序,对原来数组进行排序
[arr1 sortUsingSelector:@selector(compare:)];
NSLog(@"%@",arr1);
8.快速遍历
// 如果数组中的对象类型不同 , 取出来的元素类型各异 , 所以我们统一使用一个对象的泛型 ,id 类型 , 可以代表所有的对象类型
for (id str1 in arr1) {
NSLog(@"%@",str1);
NSNumber 类的一些方法
1.定义基本数据类型变量
char a = 'f';
int b = 20;
char a = 'f';
int b = 20;
2.将基本数据类型转为NSNumber类型的对象
NSNumber *a1 = [NSNumber numberWithChar:a];
NSNumber *b1 = [NSNumber numberWithInt:b];
NSNumber *a1 = [NSNumber numberWithChar:a];
NSNumber *b1 = [NSNumber numberWithInt:b];
3.将NSNumber类型的对象转为基本数据类型
char a2 = [a1 charValue];
NSLog(@"%c",a2);
int b2 = [b1 intValue];
NSLog(@"%d",b2);
char a2 = [a1 charValue];
NSLog(@"%c",a2);
int b2 = [b1 intValue];
NSLog(@"%d",b2);
4.NSNumber 类型的对象比较
NSLog(@"%ld", [a1 compare:b1]);
NSLog(@"%ld", [a1 compare:b1]);