Objective-C中的集合类

533 查看

下面详细的介绍Objective-C中的集合类以及每个集合类的用法,学过其他面向对象编程语言的小伙伴们看到OC的集合类会有种莫名的亲切感,理解起来问题不大,可以类比Java中的集合类去学习。 在Objective-C中的集合类中主要包括不可变的数组–NSArray,  可变的数组–NSMutableArray,   不可变的字典–NSDictionary,    可变的字典–NSMutableDictionary, 不可变的集合–NSSet,可变的集合–NSMutableSet。

一、数组

1.不可变的数组  NSArray

数组是有序对象的集合,用来存储对象的有序列表,在OC中数组中必须存的是对象,不能是基本数据类型,若想存入基本数据类型,必须先把数据类型转换成对象,然后再存入集合类中。 NSArray也是OC中的一个对象,使用NSArray也需要进行实例化,前面的博客在类的初始化中提到了便利初始化函数和便利构造器,在NSArray中也少不了这两样东西我们可以通过NSArray的便利初始化函数或者便利构造器进行NSArray的实例化和初始化工作。

(1)NSArray的初始化

NSArray的便利初始化函数: -(id) initWithObjects : (id) firstObject, ….;

NSArray的便利构造器: +(id) arrayWithObjects: (id) firstObject, …;

demo:

(2)获取数组元素的个数和数组的元素

-(NSUInteger) count; 获取数组元素的个数

-(id) objectAtIndex : (NSUInteger) index;

demo:

运行结果:

(3)有了count和objectAtIndex我们就可以对数组进行元素的遍历啦

demo:

2.可变数组:NSMutableArray

NSArray的容量是固定的,而NSMutableArray的容量是可变的,我们可以在NSMutableArray实例化的时候先初始化一个容量,不过这个容量不是固定的,不够的时候会自动增加。NSMutableArray是NSArray的子类,是对NSArray的一个扩充。

(1) NSMutableArray的初始化

NSMutableArray的便利初始化函数:-(id) initWithCapacity : (NSUInteger) numItems;

NSMutableArray的便利构造器:+(id) arrayWithCapacity: (NSUInteger) numItems;

demo:

(2)元素的添加和删除

增加元素: -(void) addObject: (id) anObject; –往数组的尾部添加元素

删除全部内容: -(void) removeAllObjects;

删除最后一个元素: -(void) removeLastObject;

通过索引删除元素: -(void) removeObjectAtIndex: (NSUInteger) index;

删除任意一个元素: -(void) removeObject : (id)object;

代码如下:

运行结果: