1.数组以nil表示结束;
2.不可变数组:数组元素不可删除、修改
3.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);
}
NSLog ( @"%@" ,arry);
// 用于数组是重写了 description 方法
// 所以打印数组使用 %@
// 打印数组就是打印数组的每一个元素
// 使用枚举器打印数组信息
NSEnumerator *enumerator = [arry objectEnumerator ];
id obj;
while (obj = [enumerator nextObject ]) {
NSLog ( @"%@" ,obj);
}
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]);
}
// [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]);
}
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 ];
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 : @"," ];
NSString *newstr = [mutableArray componentsJoinedByString : @"," ];