OC中数组和可变数组用法<代码演示>

1.数组以nil表示结束;
2.不可变数组:数组元素不可删除、修改
3.OC的数组中存储的都是对象元素;


// 2.OC 中创建数组
        
NSArray  *arry = [[ NSArray   alloc initWithObjects : @"hello" , @"china" , @"names" nil ];
        
// 数组元素可以使用任意对象
        
// 数组中存放有元素的地址
        
//OC 中的数组可以存储对象相当与  Java 中的对象数组, Person [] someperson =new Person[5] ;
        //或者相当于 List集合 List<泛型> list = new ArrayList<泛型>();
        
NSLog ( @"%@" ,arry);
        
// 用于数组是重写了 description 方法
        
// 所以打印数组使用 %@
        
// 打印数组就是打印数组的每一个元素
        
        
// 使用枚举器打印数组信息
        
NSEnumerator  *enumerator = [arry  objectEnumerator ];
        
id  obj;
        
while  (obj = [enumerator  nextObject ]) {
            
NSLog ( @"%@" ,obj);
        }

         // 使用快速枚举法遍历 , 即: java  中的  for-each  遍历
        
for ( id  obj  in  arry){
            
NSLog ( @"%@" ,obj);
        }
            
           // 使用 for 循环遍历数组
        
// [arry count]  相当于 Java 中的结合的  size 或者是数组的 length
        
NSUInteger  length = [arry  count ];
        
// 可以直接使用数组下标访问指定元素
        
id  iterator = [arry  objectAtIndex : 2 ];
        
// 也可以通过 for 循环进行
        
NSInteger  i;
        
for  (i =  0 ;i<length; i++) {
            
NSLog ( @"%@" ,[arry  objectAtIndex :i]);
        }


         //2. 不可变数组 -- 真正相当于  Java 中的 list 集合
        
NSMutableArray  * arryList = [[ NSMutableArray   alloc init ];
        
// 动态添加 , 相当于 Java list 集合的  add( 对象 ); 方法
        [arryList 
addObject : @"this" ];
        [arryList 
addObject : @"is" ];
        [arryList 
addObject : @"list" ];
        [arryList 
addObject : @"equals java" ];
        
// 动态删除 , 删除的是对象地址
        [arryList 
removeObject : @"this" ];
        
// 使用指定位置的对象删除 ,
        
// 相当于 Java 中的   集合  remove( 对象 ); 方法
        [arryList 
removeObjectAtIndex : 1 ];
        
// 可以修改元素的位置
        [arryList 
exchangeObjectAtIndex : 0   withObjectAtIndex : 2 ];
         
         //OC 中如何使用分割字符串然后放入数组中 , 相当于 Java 中的  str = "this,is,a,so,well";
        
NSString  *str =  @"this,is,a,so,well" ;
        
// 按照 进行分割,相当于 Java 中的  String [] strArry = str.split(","); 方法
        
NSArray  * strSplit = [str  componentsSeparatedByString : @"," ];
        
NSLog ( @"%@" ,strSplit);
        
for  ( int  i =  0 ; i<strSplit. count ; i++) {
            
NSLog ( @"%@" ,[strSplit  objectAtIndex :i]);
        }
        
// 此处 id  表示任意类型,相当于 Java 中的泛型功能
        
for ( id  showArray  in  strSplit){
            
NSLog ( @"%@" ,showArray);
        }

        // 使用可变数组将该数组元素放入   新数组中
        
// 创建一个空的可变数组
        
NSMutableArray  * mutableArray = [[ NSMutableArray   alloc init ];
        
// 使用 enumerator 枚举器,相当于 Java 中的 iterator 迭代器
        
NSEnumerator  * enumertator = [strSplit  reverseObjectEnumerator ];
        
NSString  *obj;
        
while  ( obj = [enumertator  nextObject ]) {
            [mutableArray 
addObject :obj];
        }
  
        // 将所有被分割后的字符串再拼接回来,使用 + 链接
        
NSString  *newstr = [mutableArray  componentsJoinedByString : @"," ];

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

GFanStudio-LeeSir

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

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

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

打赏作者

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

抵扣说明:

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

余额充值