天天看點

NSArray數組(1)

 //統稱為集合類,都是用來打包對象的

NSArray 數組          NSDictionary 字典            NSSet  集合

能夠做什麼:

1:添加,删除,插入,取出

2:建立

3:周遊集合

4:排序

 對于NSArray(數組中存儲的實際上是對象的指針位址)

》1:建立集合,NSArray是不可變數組,一旦建立完成就不能夠對數組進行删除、添加等操作

NSArray *array = [[NSArray alloc]init];

NSLog(@"%@",array);  //  列印為  ()

》2:通過構造方法的方式建立一個NSArray,在建立一個NSArray的時候,集合的最後一個元素一定是nil

NSArray  *array1 = [[NSArray arrayWithObjects:@"one",@"two",@"three",nil];

NSLog(@"%@",array);  //  列印為  (one, two,three)

》3:數組中可以存儲不同類型的對象

NSNumber  *number = [NSNumber numberWithInt:10];

NSArray *array2 = [[NSArray  alloc]initWithObjects:@"one",@"two",number,nil];

NSLog(@"%@",array);  //  列印為  (one, two,10)

》4:數組實際上存儲的是對象的位址,同樣也可以存儲數組的位址

NSArray *a1 = [[NSArray  alloc]initWithObjects:@"one",@"two",@"three",nil];

NSArray *a2 = [[NSArray  alloc]initWithObjects:@"1",@"2",@"3",nil];

NSArray *a3 = [[NSArray  alloc]initWithObjects:a1,a2,nil];

NSLog(@"%@",a3);  //  列印為  ((one, two,three),(1,2,3))   

》5:存儲自定義的對象,最好都重寫description方法

先建立一個繼承自NSObject 的類Person

在Person.m中

-(id)initWithName:(NSString *)name andAge:(int)age

{

   if(self = [super init])

  {

     _name = name;

    _age = age;

  }

return  self;

}

-(NSString *)description

{

    return  [NSString stringWithFormat:@"age= %d,  name = %@",_age,_name);

}

#import "Person.h" 之後

Person *p1 = [[Person alloc]initWithName:@"zhong"  andAge:22];

Person *p2 = [[Person alloc]initWithName:@"lili"  andAge:20];

Person *p3 = [[Person alloc]initWithName:@"meiz"  andAge:30];

NSArray *array = [[NSArray alloc]initWithObjects:p1,p2,p3,nil];

NSLog(@"%@",array];  //結果為  ( " age=22,name=zhong"," age=20,name=lili"," age=30,name=meiz")

》6:數組中存儲基本資料類型,應将基本資料類型包裝好之後再存儲。

  注:不要把nil值存儲到NSArray中,會導緻資料丢失

NSString *str = nil;

NSArray *array = [[NSArray alloc]initWithObject :@"2",str,[NSNumber numberWithInt:4],nil];

》7:建立數組的快捷方式

NSArray  *karray = @[@"b",@"c",@"d"];

》8:快速獲得一個數組中的元素

NSString *kstr = karray[0];

NSLog(@"%@",kstr];

》9:從集合中取出資料

NSArray *array = [[NSArray  alloc]initWithObjects:@"one",@"two",number,nil];

NSString *str = [array objectAtIndex:0];  //數組的index是從0開始的

》10:獲得數組的元素個數

NSUInteger arrayCount = [array count];

NSLog(@" %d" ,arrayCount);  //  3

》11:判斷數組中是否存在某個對象 Person *p1 = [[Person alloc]initWithName:@"zhong"  andAge:22];

Person *p2 = [[Person alloc]initWithName:@"y"  andAge:22];

     NSArray *array = @[p1,p2];

 BOOL isContain = [array containsObject:p1];

if(isContain)

{

   NSLog(@“存在”);

}

else{

 NSLog(@“不存在”);

}