OC中不可变数组的常用方法

不可变数组的初始化

数组对象的实例化
数组里存的都是对象
任意对象都可以存进数组

  1. 对象方法 初始化
NSArray *arr1 = [[NSArray alloc]initWithObjects:@"1",@"hello",@"world",@"JayZhou", nil];

输入出结果:
运行结果
2. 以一个现有的数组初始化

NSArray *arr2 = [[NSArray alloc]initWithArray:arr1];

输入出结果:运行结果
3. 类方法初始化

NSArray *arr3 = [NSArray arrayWithObjects:@"a",@"b",@"c",nil];
NSArray *arr4 = [NSArray arrayWithArray:arr3];

输入出结果:
运行结果

  1. 数组的另一种简写方式
 Person *per = [[Person alloc]init];
 Dog *d = [[Dog alloc]init];
 NSString *str = @"hello world";
 NSArray *arr5 = [[NSArray alloc]init];
        
NSArray *array = @[per,d,str,arr5];
NSLog(@"array= %@",array);
NSArray *s = [[NSArray alloc]initWithObjects:@"s",@"b",@"m", nil]; NSArray *s1 = [[NSArray alloc]initWithArray:s];
NSLog(@"s= %@ s1= %@",s,s1);

输入出结果:
运行结果

不可变数组的常用操作 (偷个懒下面的就不贴打印结果了 )

  1. 获取指定下标的元素
NSString *string = [s objectAtIndex:1];//获取指定下标的元素
//获取元素的简写 存的是什么类型的对象,获取元素 就定义相对应的类型来接
NSString *str = arr[1];//[ ]里是下标
  1. 获取某一个指定元素的下标
NSUInteger index = [s indexOfObject:@"1"];
		 if (index == NSNotFound) {
			 NSLog(@"不在数组中");//这里使用指针进行比较,如果存在,返回指定的下标,如果不存在,则返回NSNotFund
		 }
  1. 某个指定元素是否在某个下标范围内(同上比较)
NSUInteger index1 = [s indexOfObject:@"b" inRange:NSMakeRange(0, 1)];
		 if (index1 == NSNotFound) {
			 NSLog(@"不在数组中");
		 }
		 
  1. 获取数组中第一个和最后一个元素
 //获取第一个元素
 NSString *str3 = [arr firstObject];
 NSLog(@"str3= %@",str3);
 
 //如何获取最后一个元素
 NSString *str2 = [arr lastObject];
 NSLog(@"str2= %@",str2);
 
  1. 判断数组是否包含一个元素
 BOOL ret = [arr containsObject:@"f"];
       
      if (ret) {
          NSLog(@"包含这个元素");
        }else{
           NSLog(@"不包含");
      }
      
  1. 获取数组的一部分元素
//起始下标指的就是第几个元素,长度就是代表获取多少个元素
NSRange range = {0,2};//长度为2就只是获取2个元素,起始下标为0
NSArray *arr1 = [arr subarrayWithRange:range];

小练习

创建一个数组,NSArray *arr = @[@“1”,@“2”,@“3”,@“4”,@“5”,@“6”,@“7”,@“8”,@“9”,@“10”];
找出该数组中下标能整除2的元素,并且输出;

NSArray *arr1 = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9", @"10",nil];
   for (NSInteger i = 0; i<[arr1 count]; i++) {
            if ( i%2==0) {
            NSLog(@"str= %@",arr1[i]);
        }
  }
    

输入出结果:
输出结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡卡西Sensei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值