您的位置:首页 > 其它

OC_数组(可变、不可变)

2016-08-08 21:48 281 查看

不可变数组 NSArray

初始化NSArray

NSArray *array1 = [[NSArray alloc]init];
NSArray *array2 =  [NSArray array];//类方法


//创建一个里面有一个元素的不可变数组

NSArray *array3 = [NSArray arrayWithObject:@"Leee"];

NSArray *array4 = [NSArray arrayWithObjects:@"Leee",@"axiba",@"Leo", nil];
//nil 只能出线在数组的最后,不能在数组中间存放nil,因为nil是一个NSArray的结束标志.


//新语法

NSArray *array5 = @[@"Leeee"];
NSArray *array6 = @[@5,@"Leee",@"sb",@"???"];
//@5 相当于[NSNumber numberWithInt:5]


//根据一个数组产生新的数组

NSArray *array7 = [NSArray arrayWithArray:array6];


//从本地读取数组文件

NSArray *array8 = [NSArray arrayWithContentsOfFile:@""];

NSArray *array9 = [NSArray arrayWithContentsOfURL:[NSURL URLWithString:@"http://www.baidu.com"]];


//数组中元素个数

NSUInteger count = [array6 count];


//数组的操作

//访问数组中的元素

//数组里面每一个东西都必须是对象

//访问array6中的第一个元素

NSString *str1 = [array6 objectAtIndex:0];//返回一个字符串

for (int i =0 ; i < 3;i++ ) {

NSLog(@"%@",[array6 objectAtIndex:i]);
};


//新语法访问数组中元素

NSString *str2 = array6[0];
NSArray *array10 = @[@3,@4,@5];
//@3     [NSNumber numberWithInteger:3];
//@YES [NSNumber numberWithBool:YES];


//通过数组中国年的元素查找下标

NSUInteger index = [array6 indexOfObject:@"Leee"];
NSLog(@"index = %lu",index);


//判断数组中是否存在某元素

if ([array6 containsObject:@"RICK"]){
NSLog(@"不包含此元素");
}


//向不可变数组增加一个元素

NSArray *newArray1 = [array6 arrayByAddingObject:@"urmamaboom"];


//在后面在给它加东西

NSArray *newArray2 = [array6 arrayByAddingObjectsFromArray:array6];


//拼接

NSString *string = [newArray2 componentsJoinedByString:@"^.^"];
NSLog(@"%@",string);

NSArray *array11 = @[@"123",@"456",@"789",@"000"];
NSString *string1 = [array11 componentsJoinedByString:@"-"];

NSArray *array12 = [string1 componentsSeparatedByString:@"-"];

NSString *string2 = [array12 componentsJoinedByString:@""];

/*
使用NSArray 注意事项
1.数组越界
2.不能在数组中间存放nil,nil 是数组结束标志
3.数组会对加入其中的对象自动把引用加一。
*/


可变数组 NSMutableArray

可变数组 NSMutableArray,它是NSArray 的子类

//初始化方法

//初始化一个空的数组

NSMutableArray *mArray1 = [NSMutableArray array];


//初始化一个里面有一个元素的数组

NSMutableArray *mArray2 = [NSMutableArray arrayWithObject:@"1"];


//创建一个里面有多个元素的数组

NSMutableArray *mArray3 = [NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil];


//根据一个数组去创建一个新的数组

NSMutableArray *mArray4 = [NSMutableArray arrayWithArray:mArray3];


//可变数组独有的初始化方法

NSMutableArray *mArray5 = [NSMutableArray arrayWithCapacity:10];

NSMutableArray *mArray6 = [NSMutableArray arrayWithContentsOfFile:@""];

NSMutableArray *mArray7 = [NSMutableArray arrayWithContentsOfURL:[NSURL URLWithString:@""]];


//增加一个元素

//在数组末尾添加一个元素(直接在末尾添加 不用返回一个新的数组)

[mArray3 addObject:@"sb"];


//在数组指定位置插入一个元素

[mArray3 insertObject:@"4" atIndex:3];


//替换,将数组指定位置上的元素替换成用户想要的元素;

[mArray3 replaceObjectAtIndex:1 withObject:@"Rick"];


//交换,将数组指定位置上的两个元素交换位置

[mArray3 exchangeObjectAtIndex:2 withObjectAtIndex:4];


//删

//删除指定元素

[mArray3 removeObject:@"1"];


//删除指定位置上的元素

[mArray3 removeObjectAtIndex:2];


//删除数组中最后一个元素

[mArray3 removeLastObject];

[mArray3 removeAllObjects];

NSMutableArray *newMArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];

for (int i=0;i < newMArray.count;i++){
NSLog(@"%@",newMArray[i]);
}

NSLog(@"--------");


//快速枚举

for (id element in newMArray){
NSLog(@"element = %@",element);
}


//使用系统提供的枚举类型 NSEnumerator

NSEnumerator *enumerator = [newMArray objectEnumerator];
id obj;
while (obj= [enumerator nextObject]) {


//使用枚举器遍历数据元素期间,不能增加或删除数组元素,数组元素个数就会前后不一致出现异常/

NSLog(@”%@\n”,obj);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nsarray