数组:按照顺序排列的元素的集体
数组取值:数组是通过下标(索引)去取值
NSArray(数组类名) 数组 在OC里面允许数组里面存在放不同类型的元素,在取值的时候,一定要注意数组类型,尽量存相同类型的数据
#import
//#import 是导入整个《声明文件》,可以使用里面所有内容
//@class 提示类名,只可以使用类名,并未使用类里面的内容
int main(int argc, const char * argv[]) {
@autoreleasepool {
在数组里面存储的都是NSObject数据
NSArray *list=@[@"11",@"22",@"33"];
基本数据类型 存到数组
NSNumber把数字类型的变量包成NSObject类型
数字转 NSNumber?
把咱们数字到数组的时候,不可以直接存放非NSObject类型的数据
可以把数字转换成NSNumber
int a=100;
NSNumber *num=[[NSNumber alloc]initWithInt:a];
NSNumber *num=[NSNumber numberWithInt:a];
转NSNumber类型的缩写@(要转的数据)
NSArray *list1=@[@(a),@(0.55)];
NSNumber *num1=list1[0];
int num0=[list1[0] intValue];
#pragma ----------初始化数组--------
1、初始化方式1--直接赋值 @[元素,元素]
在OC里面允许数组里面存在放object类型的元素
NSArray *array = @[@"字符串",65,p];
字符串只是一段文字,禁止将对象当做字符串来存。👌
2、初始化方式2
NSArray *list = [[NSArray alloc]init];
初始化一个空数组是有意义的,oc中数组允许直接赋值
3、初始化方式3
NSArray *list = [NSArray array];
4、初始化并赋值
(1)初始化只有一个元素的数组
NSArray *list = [NSArray arrayWithObject:@"..."];
(2)初始化多个元素的数组
NSArray *list = [NSArray arrayWithObjects:@"",@"", nil];
注意事项:nil不可以省略 最后一个元素的逗号不可以省略
最常用的初始化方式:**
NSArray *list = @[@"",@""];
NSArray *list = [NSArray array];空数组
#pragma ----------数组取值--------
数组取值:下标(索引)取值,下标是从0开始的
NSArray *list = @[@"八戒",@"悟空",@"和尚",@"宝宝",@"旺旺"];
取值:数组名[下标];
#pragma ----------数组遍历----------
数组遍历.1
获得数组元素个数的属性: count
使用方法:数组名.count
for (int i=0; i
NSString *s = list[i];
NSLog(@"%@",s);
}
数组遍历.2 快速遍历
for (元素类名 *对象名(所取元素) in 数组名) {
NSLog(@"%@",所取元素);
}
for (NSString *s in list) {
NSLog(@"%@",s);
}
NSArray *list = @[@"lucy",@"lily",@"lilei",@"hanmeimei"];
NSLog(@"%@",list);
/*打印出来的结果
数组元素是用逗号隔开的
(
lucy,
lily,
lilei,
hanmeimei
)*/
NSArray *list = @[@"lucy",@"lily",@"lilei",@"hanmeimei"];
通过方法取值 objectAtIndex
(1) NSString *s = [list objectAtIndex:0];
倒着遍历 先了解一下
int num = [@(list.count)intValue];
for (int i=num; i>=0; i--) {
}
(1)(2)两种方法完全等价,一旧一新罢了
(2)for (int i=0; i
NSLog(@"%@",[list objectAtIndex:i]);
}
#pragma字符串里面可以通过符号截取字符串变成数组
以字符串某个元素为分界点将之变成数组,将这个元素过滤,注意区分中英文符号(所占字节数是不一样的)
NSString *content = @"葫芦娃,小明,老王,大黄";
NSArray *list = [content componentsSeparatedByString:@","];
for (NSString *s in list) {
NSLog(@"%@",s);
}
#pragma -------数组变成字符串----------
NSArray *list = @[@"小明",@"小红",@"小萌"];
componentsJoinedByString的意思:加入一个字符串使之返回一个字符串
NSString *s = [list componentsJoinedByString:@""];
NSLog(@"%@",s);
直接把数组格式化字符串,数组会保持原始状态
NSString *s = [NSString stringWithFormat:@"%@",list];
NSLog(@"%@",s);
#pragma ---可变数组 NSMutableArray-------
注意!:不可以直接给可变数组赋值*******
NSMutableArray *list = @[];❌
NSArray *arr = @[@"",@""];
NSMutableArray *list = [NSMutableArray arrayWithArray:arr];
NSString *s1 = @"";
NSString *s2 = @"";
NSMutableString *s = [NSMutableString stringWithFormat:@"%@%@",s1,s2];
不可变数组里面所有的方法,可变数组都可以使用
NSMutableArray *list = [NSMutableArray arrayWithObjects:@"",@"", nil];
#pragma ----可变数组的增删改查----------
NSMutableArray *list = [NSMutableArray array];
#pragma -----1.添加元素-----
Hero *hero = [[Hero alloc]init];
给英雄赋值...
添加一个object类型的元素
[list addObject:hero];
再添加..
[list addObject:hero];
NSLog(@"%lu",list.count);
如果添加10个...就用for循环,
alloc init 会创建一个对象,出现一次就会创建一个对象
for (int i=0; i<10; i++) {
Hero *hero = [[Hero alloc]init];
[list addObject:hero];
}
#pragma -----2.删除元素-----
NSMutableArray *list = [NSMutableArray arrayWithObjects:@"lucy",@"mike",@"tom",nil];
删除指定元素
可以通过下标来删除
(1)[list removeObjectAtIndex:1];
(2) NSRange range = {0,2};
[list removeObjectsInRange:range];
NSLog(@"%@",list);
移除最后一个元素
[list removeLastObject];
移除全部内容
[list removeAllObjects];
#pragma -----3.替换-----
[list replaceObjectAtIndex:1withObject:@"hanyang"];
#pragma -----4.查找-----
//1.通过下标,查找元素所在位置
list[0];
//2.通过元素,查找元素所在位置
NSString *name = @"tom";
NSUInteger i = [list indexOfObject:name];
NSLog(@"%lu",(unsigned long)i);
------------------------------回顾以上------------------------------
1、不可变数组
数组的初始化
(1)NSArray *list = @[@"",@""];
(2)NSArray *list = [[NSArray alloc]init];
(3)NSArray *list = [NSArray array];
初始化并赋值
(1)只赋一个值NSArray *list = [NSArray arrayWithObject:@""];
(2)初始化 并赋多个值 NSArray *list = [NSArray arrayWithObjects:@"",@"", nil];
注意:最后一个元素的逗号 和 nil 不能省略
数组取值
(1)list[0];
(2)[list objectAtIndex:0];
快速遍历
for (元素 in 数组) {
}
数组转字符串
(1)直接格式化[NSString stringWithFormat:@"%@",list];
(2)加入一个字符串去分割数组 [list componentsJoinedByString:@""];
把字符串转成数组
通过一个标记 把字符串分割成数组
NSString *ss =@"qqqq11www11eee";
[ss componentsSeparatedByString:@"11"];
可变数组
增删改查
(1)添加[list addObject:@""];
(2)直接删除一个元素:[list removeObject:@""];
通过下标删除元素:[list removeObjectAtIndex:0];
删除最后一个元素:[list removeLastObject];
删除全部元素:[list removeAllObjects];
替换元素:
通过下标 替换下标对应的元素:[list replaceObjectAtIndex:0 withObject:@""];
查找元素:
(1)通过下标:list[0];
(2)通过内容查找:[list indexOfObject:@""];
网友评论