【Foundation Frame】NSArray

NSArray
代表元素有序、可重复的一个集合,集合中每个元素都有对应的顺序索引。

创建NSArray的常见方法
1、array:创建一个不包含任何元素的空NSARRAY
2、arrayWithObject/initWithObject:创建只包含指定元素的NSArray
3、arrayWithObjects/initWithObjects:创建只包含一个或多个元素的NSArray
4、arrayWithContentsOfFile:读取文件内容来创建NSArray

(以下程序列举了常用的NSArray方法)
//
//  main.m
//  Array
//
//  Created by mac on 14-12-3.
//  Copyright (c) 2014 mac. All rights reserved.
//

#import <Foundation/Foundation.h>
#import
"People.h"

// 静态创建数组的方法
void staticCreatArray()
{
   
NSArray * array1 = [ NSArray arrayWithObject : @"NSArray" ];
   
NSLog ( @"Way 1: %@" ,array1);
   
   
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray1" , @"NSArray2" , @"NSArray3" , nil ];
   
NSLog ( @"Way 2: %@" ,array2);
   
   
NSArray * array3 = [ NSArray arrayWithArray :array2];
   
NSLog ( @"Way 3: %@" ,array3);
  
    [array1
release ];
    [array2
release ];
    [array3
release ];

}

// 动态创建数组的方法
void dynamicCreatArray()
{
   
NSArray * array1 = [[ NSArray alloc ] initWithObjects : @"1,2,3,4,5" , @"HELLO" , nil ];
   
NSLog ( @"Way 1: %@" ,array1);
   
   
NSArray * array2 = [[ NSArray alloc ] initWithArray :array1];
   
NSLog ( @"Way 2: %@" ,array2);
   
}

// 查询集合元素在 NSArray 中的序列
void searchArray()
{
   
NSArray * array1 = [ NSArray arrayWithObject : @"NSArray" ];
   
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray1" , @"NSArray2" , @"NSArray3" , nil ];
   
NSArray * array3 = [[ NSArray alloc ] initWithObjects : @"1,2,3,4,5" , @"HELLO" , @"HELLO" , nil ];
   
   
NSLog ( @"%lu" ,[array1 count ]);
   
NSLog ( @"%hhd" ,[array3 containsObject : @"HELLO" ]);
   
NSLog ( @"%@" ,[array2 lastObject ]);
   
NSLog ( @"%@" ,[array2 objectAtIndex : 1 ]);
   
NSLog ( @"%lu" ,[array2 indexOfObject : @"NSArray1" ]);
   
NSRange range = NSMakeRange ( 0 , 2 );
   
NSLog ( @"%lu" ,[array2 indexOfObject : @"NSArray2" inRange :range]);
   
    [array3
release ];
   
}

// 对数组进行比较
void compareArray()
{
   
NSArray * array1 = [ NSArray arrayWithObject : @"NSArray" ];
   
NSArray * array11 = [array1 copy ];
   
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray1" , @"NSArray2" , @"NSArray3" , nil ];
   
NSArray * array3 = [[ NSArray alloc ] initWithObjects : @"1,2,3,4,5" , @"HELLO" , @"HELLO" , @"NSArray1" , nil ];
   
   
NSLog ( @"%hhd" ,[array1 isEqualToArray :array11]);
   
NSLog ( @"%@" ,[array2 firstObjectCommonWithArray :array3]);
    [array3
release ];
}

// 遍历数组
void ergodicArray()
{
  
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray1" , @"NSArray2" , @"NSArray3" , nil ];
   
//C 语言方式
   
for ( int i = 0 ; i<[array2 count ]; i++)
    {
       
NSLog ( @"%@" ,[array2 objectAtIndex :i]);
    }
   
// 快速遍历
   
for ( id obj in array2)
    {
       
NSLog ( @"    %@" ,obj);
       
    }
   
//Block 方法遍历
    [array2
enumerateObjectsUsingBlock :^( id obj, NSUInteger idx, BOOL *stop)
    {
       
if (idx< 1 )
        {
            * stop =
YES ;
        }
       
       
NSLog ( @"%lu,%@" ,idx,obj);
    }];
   
   
// 迭代器方法遍历
   
NSEnumerator * enumerator =[array2 objectEnumerator ];
   
id obj ;
   
while (obj= [enumerator nextObject ]) {
       
NSLog ( @"%@" ,obj);
    }
}

// 其他方法
void otherArray()
{
   
NSArray * array1 = [ NSArray arrayWithObject : @"NSArray" ];
   
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray1" , @"NSArray2" , @"NSArray3" , nil ];
   
   
// 快速遍历 array
   
for ( id obj in array2)
    {
       
NSLog ( @"%@" ,obj);
       
    }
   
    array2 = [array2
arrayByAddingObject : @"NSArray4" ];
   
for ( id obj in array2)
    {
       
NSLog ( @"  %@" ,obj);
       
    }
   
    array2 = [array2
arrayByAddingObjectsFromArray :array1];
   
for ( id obj in array2)
    {
       
NSLog ( @"    %@" ,obj);
       
    }
   
   
NSArray *pathArray = [ NSArray arrayWithObjects : @"here" , @"be" , @"dragons" , nil ];
   
NSLog ( @"%@" ,pathArray);
   
NSLog ( @"%@" ,[pathArray componentsJoinedByString : @"->" ]);
   
   
NSRange range = NSMakeRange ( 0 , 3 );
   
NSLog ( @"%@" ,[array2 subarrayWithRange :range]);
   
}

// 排序
void sortArray()
{
   
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray2" , @"NSArray1" , @"NSArray3" , nil ];
   
NSLog ( @"Before Sort:%@" ,[array2 componentsJoinedByString : @" " ]);
   
// 选择排序
   
NSArray * selectSortArray = [array2 sortedArrayUsingSelector : @selector (caseInsensitiveCompare:)];
   
NSLog ( @"After Sort :%@" ,[selectSortArray componentsJoinedByString : @" " ]);
   
   
NSArray * array3 = [ NSArray arrayWithObjects : @"NSArray2" , @"NSArray1" , @"NSArray3" , @"NSArray5" , @"NSArray4" , nil ];
   
NSLog ( @"Before Sort:%@" ,[array3 componentsJoinedByString : @" " ]);
   
   
}

int main( int argc, const char * argv[]) {
   
@autoreleasepool {
      
// insert code here...
      
// NSLog(@"Hello, World!");
      
// staticCreatArray();
      
//  dynamicCreatArray();
      
// searchArray();
      
//  compareArray();
      
// ergodicArray();
       //  otherArray();
       // sortArray();
       
    }
   
return 0 ;
}



转载于:https://www.cnblogs.com/shujucn/p/7481461.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值