OC基础-OC三大基本数据结构-NSArray
2015-09-25 14:11
501 查看
一、OC三大基本数据结构之NSArray
基类:NSArray
不可变数组,数组一旦创建,数组的元素个数和顺序不可变。
子类:NSMutableArray
可变数组,继承了基类的方法,又有自己的关于修改元素个数和顺序的方法。
二、NSArray的使用
1.创建数组
2.遍历数组的三种方法
枚举器法(正序枚举器和倒序枚举器)、快速枚举法、使用i值
3.%@的理解
使用%@输出,实际上是输出description方法的返回值,desctiption方法是Object类的方法。
我们可以重写该方法,类验证自己的想法。
Dog.h
Dog.m
Main.m
三、NSMutableArray的使用
@诗未冷学习博客
基类:NSArray
不可变数组,数组一旦创建,数组的元素个数和顺序不可变。
子类:NSMutableArray
可变数组,继承了基类的方法,又有自己的关于修改元素个数和顺序的方法。
二、NSArray的使用
1.创建数组
NSArray * array1 = [[NSArray alloc] initWithObjects:@"one",@"two",@"three", nil]; NSLog(@"%s输出:%@","%@",array1);
2.遍历数组的三种方法
枚举器法(正序枚举器和倒序枚举器)、快速枚举法、使用i值
//遍历数组,枚举器法Enumerator NSEnumerator * enu = [array1 objectEnumerator]; NSString * str; while(str = [enu nextObject]){ NSLog( @"枚举器法:%@", str); } //倒序枚举器法 NSEnumerator * enu2 = [array1 reverseObjectEnumerator]; while (str = [enu2 nextObject]){ NSLog(@"倒序枚举器法:%@",str); } //遍历数组,快速枚举法 id obj in array for(id obj2 in array1){ NSLog(@"快速枚举法:%@",obj2); } //遍历数组,使用i值 id obj1; int i; for(i = 0 ; i < [array1 count]; i++){ obj1 = [array1 objectAtIndex:i]; NSLog(@"使用i值遍历:%@", obj1); }
3.%@的理解
使用%@输出,实际上是输出description方法的返回值,desctiption方法是Object类的方法。
我们可以重写该方法,类验证自己的想法。
Dog.h
#import <Foundation/Foundation.h> @interface Dog : NSObject -(NSString *)description; @end
Dog.m
#import "Dog.h" @implementation Dog -(NSString *)description{ return @"This is a dog"; } @end
Main.m
#import <Foundation/Foundation.h> #import "Dog.h" int main(int argc, const char * argv[]) { @autoreleasepool { Dog * dog = [Dog alloc]; NSLog(@"使用%s输出Dog类的对象:%@","%@",dog); } return 0; }
三、NSMutableArray的使用
//1.创建,形式1 NSMutableArray * mutableArray = [[NSMutableArray alloc] initWithObjects:@"one",@"two", nil]; [mutableArray addObject:@"three"]; NSLog(@"创建可变数组:%@",mutableArray); //1.创建,形式2 NSMutableArray * mutableArray2 =[[NSMutableArray alloc] init]; [mutableArray2 addObject:@"ONE"]; [mutableArray2 addObject:@"TWO"]; [mutableArray2 addObject:@"THREE"]; NSLog(@"创建可变数组2%@", mutableArray2); //2.删除元素 //[mutableArray removeAllObjects]; //[mutableArray removeLastObject]; //[mutableArray removeObjectAtIndex:0]; //[mutableArray removeObjectsInRange:NSMakeRange(0, 2)]; //3.改变元素的顺序--交换元素的位置 [mutableArray exchangeObjectAtIndex:0 withObjectAtIndex:2]; //NSLog(@"%@", mutableArray); //4.字符串分割成数组 NSString * string = @"I am a very happy boy"; NSArray * array3 = [string componentsSeparatedByString:@" "]; NSLog(@"字符串分割数组:%@", array3); //将分割的数组倒序 NSMutableArray * mutableArray3 = [[NSMutableArray alloc] init]; NSEnumerator * enu3 = [array3 reverseObjectEnumerator];//对哪个数组进行枚举,使用哪个数组创建枚举器 id obj4; while(obj4 = [enu3 nextObject]){ [mutableArray3 addObject:obj4]; } NSLog(@"字符串分割数组并倒序:%@",mutableArray3); //5.数组拼接成字符串 NSString * newStirng =[array3 componentsJoinedByString:@"-"]; NSLog(@"%@", newStirng);
@诗未冷学习博客
相关文章推荐
- OC基础-OC三大基本数据结构-NSString
- 线索二叉树-数据结构
- 队列学习笔记
- 数据结构之线段树
- 杭电acm1027(无思路)
- 如果业界中不用高级算法和数据结构,那为什么还要学?
- 数据结构实践——单链表连接
- 第四周【4项目-数据结构之自建算法库——双链表 】
- 数据结构实践——单链表逆置
- THU数据结构编程作业一:祖玛(Zuma)
- 项目6 -- 多项式求和
- 项目5 -- 猴子选大王
- 第3周SHH数据结构—【项目4-顺序表应用问题(2)】
- 第3周SHH数据结构—【项目4-顺序表应用问题(1)】
- 数据结构实践——建设单链表算法库
- 数据结构与算法分析:哈希表
- 数据结构和算法
- Java数据结构与算法之2的n次方判定
- Java数据结构与算法之年龄判断
- THU数据结构编程作业一:查询范围(Range)