OC_数组(可变、不可变)
2016-08-08 21:48
281 查看
不可变数组 NSArray
初始化NSArrayNSArray *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);
}
相关文章推荐
- OC的不可变数组以及可变数组
- OC中不可变数组与可变数组
- OC中不可变数组和可变数组的操作方法
- OC中可变字典和不可变字典
- python 类C数组的两种形式:list -->内容可变, tuple --->内容不可变
- Objective-C:MRC(引用计数器)在OC内部的可变对象是适用的,不可变对象是不适用的(例如 NSString、NSArray等)
- OC基础使用(六 NSArray 不可变数组)
- OC中的可变数组
- GoLang笔记-数组和切片,本质是就是长度不可变的可变的区别
- OC视频笔记(不可变字典常用方法,与优化方法)(可变字典的常用方法)
- OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法
- OC基础使用(七 NSMutableArray 可变数组)
- OC-044.可变数组NSMutableArray
- OC基础第三天(OC不可变数组和可变数组的基本用法)
- OC中删除可变数组中的元素
- OC学习(五)不可变数组类,可变数组类及数值类
- OC_字典(可变不可变都有^_^)
- OC中的不可变集合、可变集合、计数集合与集合的快速遍历
- OC_09可变与不可变缓冲区(...Data)及日期时间NSDate
- go语言笔记——数组长度不可变,但是元素值是可变的!!!