首页 > 其他 > 详细

【语法】数组Array

时间:2014-01-31 13:35:48      阅读:428      评论:0      收藏:0      [点我收藏+]

请参照NSArray练习

【1】数组的创建

数组是不能添加元素的,只能在创建的同时赋值。

1.创建数组

  //静态方法不需要管理内存
    NSArray *array= [NSArray array];  //这样创建是没有数组的,是创建空的数组
    array= [NSArray arrayWithObject:@"123"];//创建一个有1个元素的数组。
    array= [NSArray arrayWithObjects:@"1",@"2",@"3", nil];//这里是创建一个有多个元素的数组   //nil在这里表示是一个结束符类似于/0.
    

 

2.查询数组内元素个数

    //查询元素个数
   int count=[array count];//用来计算数组内部有多少个元素
    
    //同上面等价
    int count =array.count;
    
    NSLog(@"%i",count); //输出

 

3.数组中既可以放元素,也可以放数组

    //或者有一种方式就是arrary1中既可以放元素,也可以放数组
    NSObject *obj=[[NSObject alloc] init];
    NSArray *array1=[NSArray arrayWithObjects:@"a",@"b",@"c",obj, nil];
    NSLog(@"%@",array1);

 

 

【2】数组的查询

1.是否包含某元素

bubuko.com,布布扣
  //判断字符数组中是否包含某元素
    NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil];
    if([array containsObject:@"1"]){
        NSLog(@"包含了字符");
        
    }else
    {
        NSLog(@"不包含该字符");
    }
bubuko.com,布布扣

 

2.判断数组内最后一个元素是什么

 //判断最后一个元素是什么
    NSString *last=[array lastObject];
    NSLog(@"last=%@",last);

 

3.通过索引查询该索引值对应的元素

    
    //根据某个索引值然后找到该位置的元素是什么
    NSString *str=[array objectAtIndex:1];
    NSLog(@"%@",str);
    

 

4.通过元素查询索引值(如果是负数,那么就是查找不倒。)

  //根据某个元素,查找到该元素的索引位置
    //如果是负数,那么就是查找不倒。
    int index=[array indexOfObject:@"2"];
    NSLog(@"index=%i",index);
    

 

【3】数组的比较

1.比较两个集合内容是否相同

//比较两个集合内容是否相同
 -(BOOL)isEqualToArray:(NSArray  *)otherArray

 

2.返回第一个相同的对象元素

 //返回两个集合中第一个相同的对象元素
 -(id)firstObjectCommonWithArray:(NSArray *)otherArray

 

 

【4】数组的遍历

1.for循环进行遍历

bubuko.com,布布扣
void arrayFor(){
    
    NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil];
    int count =array.count;
    for(int i=0;i<count;i++)
    {
        id obj=[array objectAtIndex:i];
        NSLog(@"%i-%@",i,obj);
    }
}
bubuko.com,布布扣

 

2.快速遍历方法

bubuko.com,布布扣
void arrayFor2(){
    
    NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil];
    int i=0;
    for(id obj in array){
        NSLog(@"%i-%@",i,obj);
        i++;
    }

}
bubuko.com,布布扣

 

3.快速遍历方法

enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
如图打入这种方法的时候将
^(id obj, NSUInteger idx, BOOL *stop)这一句进行双击展开

bubuko.com,布布扣  

展开成为:

bubuko.com,布布扣  

例子如下:
bubuko.com,布布扣
void arrayFor3(){
    
    NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    //每遍历一个元素都会调用一次block
    //利用指针修改外面bool变量值
    if(idx==1){
     *stop=YES;//传入一个stop指针让内部能进行修改
    }
    NSLog(@"%i-%@",idx,obj);
}];
}
bubuko.com,布布扣

 

4.使用迭代器进行遍历

   NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil];
   NSEnumerator *enumerator=[array objectEnumerator];//获取数组的迭代器

 

5.反序迭代器,从尾部开始遍历

    NSArray *array=[NSArray arrayWithObjects:@"1",@"2",@"3", nil];
  //反序迭代器,从尾部开始进行遍历
    NSEnumerator *enumerator=[array reverseObjectEnumerator];

 

6.取得下一个需要遍历的元素

    [enumerator nextObject];//取得下一个需要遍历的元素
    id obj=nil;
    while (obj=[enumerator nextObject]) {
        NSLog(@"obj=%@",obj);
    }
    

 

7.返回迭代器中的所有元素

    //返回迭代器中的所有元素
   NSArray *array2=[enumerator allObjects];
    NSLog(@"array2:%@",array2);
    
    

 

 

【语法】数组Array

原文:http://www.cnblogs.com/madeininfi/p/3536641.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!