OC - 数组、字典、集合

数组是一个有序的集合,OC中的数组只能存储对象类型,对于对象的类型是没有限制的

NSArray:不可变数组 :对象创建好以后,数组中的元素个数不能发生变化

NSSMutableArray : 可变数组 : 对象创建好以后,数组中的元素可以灵活进行增删改操作

NSArray *names = [[NSArray alloc] initWithObjects:@"frank", @123, @"monkey", nil];

注意 : nil作为数组存放元素的结束标志,多个元素通过逗号间隔。

NSArray 常用的方法

1. > 元素个数

@property (readonly)NSUInteger count;

2. > 获取数组中指定下标对应的元素

- (id)objectAtIndex:(NSUInteger)index;

3. > 用来判断数组中是否包含某个给定的对象

- (BOOL)containObject:(id)anObject;

4.>获取数组元素对应的索引

- (NSUInteger)indexOfObject:(id)anObject;

5. > 按照给定的字符串进行截取,将截取的多段字符串放入数组中

- (NSArray *)componentsSeparatedByString:(NSString *)separator;

6. > 将数组中的元素按照给定的字符串格式拼接成一个完整的字符串对象

- (NSString *)componentsJoinedByString:(NSString *)separator;

//可变数组 NSMutableArray

1. > 数组中添加一个对象

- (void)addObject:(id)object;

2. >数组中指定位置插入一个对象

- (void)insertObject:(id)anObject atIndex:(NSUInteger)index;

3. > 数组中移除一个对象

- (void)removeObject:(id)object;

4. > 移除数组中最后一个对象

- (void)removeLastObject;

5. > 移除数组中所有的元素
- (void)removeAllObjects;

6. >数组中移除指定位置的元素

- (void)removeObjectAtIndex:(NSUInteger)index;

7. > 使用指定的对象替换指定位置的对象

- (void)reolaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;

8.> 交换指定的两个下标对应的对象

- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)inx2;

// 字典 : 字典是一个无序的集合,用来存储具有一一对应关系的数据.

字典中存储的每一个对象都是一个键值对,键值对包含两个部分key 和 value, key 与 value 的值都是对象类型.

对于每一对 key-value称为一个条目(Entry).

与数组不同,字典靠key存取元素

key与value必须都是对象类型

字典中键值对的存储是无序的

字典分为两种类型不可变字典(NSDictionary),看外边字典(NSMutableDictionary).

1. > 获取字典中键值对的个数

@property (readonly)NSUInteger count;

2. > 获取字典中所有的键

@property (readonly, copy) NSArray *allKeys;

3. > 获取字典中所有的值

@property (readonly, copy) NSArray *allValues;

4. > 根据键获得对应的值

- (id)objectForKey:(NSString *)anAttribute;

5. > 字典中添加新的键值对以及修改某一个键值对

- (void)setObject:(id)anObject forKey:(id<NSCopying>)aKey;

6. > 移除指定的键对应的键值对
- (void)removeObjectForKey:(id)aKey;

7.> 移除字典中所有的键值对

- (void)removeAllObjects;

集合 : 集合在开发过程中使用的范围并没有数组和字典频繁。OC中的集合分为不可变集合(NSSet)和可变集合(NSMutableSet)两种

集合的特性:

互异性 集合中不能够存在两个相同的对象

无序性 集合中的对象没有顺序,先添加的对象不一定在集合中的第一个位置,后添加的也不一定在最后一个位置

集合经常用来处理重用问题
初始化方法

NSSet *name = [[NSSet alloc] initWithObjects:@"frank", @"duck", @"monkey", nil];

注意 : 不可变集合一旦创建,集合中的对象无法修改,只能从集合中读取对象,并且没有快速创建集合对象的字面量。

1. >  获取集合中对象的个数

@property (readonly) NSUInteger count;

2. > 获取集合中所有的对象

@property (readonly, copy) NSArray *allObjects;

3. > 从集合中取出一个对象

- (id)anyObject;

4. > 判断集合中是否包含某一个给定的对象

- (BOOL)containObject:(id)anObject;

NSMutableSet (可变集合)的父类是NSSet, 具有NSSet所有的方法,同时在其基础上又增加了"添加" 和 "删除" 对象的操作。

1. > 添加一个对象

- (void)addObject:(id)object;

2. > 移除一个对象

- (void)removObject:(id)boject;

3. > 移除所有对象

- (void)removeAllObjects;

OC中的三大容器: 数组、字典、集合,三个容器总存储的都是对象类型

数组:是一个有序的集合,当我们需要管理有序的一组对象的时候需要使用数组
字典:是一个无序集合,里面存储的对象是一个一个的键值对,我们获取数据的时候需要使用对应的key来操作

集合集合是一个无序的容器,并且容器中的对象不能够重复

可变容器类对象是不可变容器类对象的子类,在拥有父类功能基础上,扩充了对原有对象的增删改操作

时间: 2024-10-07 17:05:54

OC - 数组、字典、集合的相关文章

Objective - C 字符串 数组 字典 集合的基本使用

1.字符串的基本使用(NSString,NSMutableString) 字符串初始化常用的基本方法: NSString *str = @"jacky"; //临时的字符串 NSString *str2 = [[NSString alloc] initWithFormat:@"%@,20岁",str]; // 初始化方法 NSString *str3 = [NSString stringWithFormat:@"%@,20 岁",str];  /

OC中字典,数组,集合的关系和使用

1.不可变数据字典(NSDicionary) 字典:用来存储具有一一对应关系的数据.一个key 对应一个 value ,key起到了唯一标示的作用,key必须是唯一的,但是一个vlaue可以对应多个key.字典存储的是无序的元素,一对键值对组成了字典中的一个元素. ①.不可变字典初始化赋值 <span style="font-size:18px;"> //笑笑语法 NSDictionary *dic = @{@"name":@"zhangdan

OC 字典 集合

用字典能有什么好处? 字典是个大容器,它能够储存多个数据 用字典存储的数据具有一一对应的关系(使用key来标识value) 字典中一对键值对(key-value)叫做字典中的一个元素,也叫一个条目,只要是对象就可以,不限制类型 字典是无序的 字典中的key是唯一的,一个key只能对应一个value,一个value可以对应多个key 创建字典对象: 1.便利构造器(+号方法): NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKe

OC语言--数组&amp;字典

1.数组 1.1 不可变数组(只读数组) 注意:OC数组和C数组的区别: ->创建方式不同: ->OC数组本身也是一个对象,是任意类型对象地址的集合: ->OC兼容C的数组,可用于存储对象: (1) 创建数组对象 ->方式一: NSArray *array = [[NSArray alloc] initWithObjects:@"one", @"two", @"three", @"one", nil];

oc中字典的实现方法详解

一:字典的基本概念 Foundation中的字典(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合.正如,我们在字典里查找单词的定义一样. 通过key(键),查找的对应的value(值),key通常是字符串对象,也可以是其他任意类型对象.在一个字典对象中,key的值必须是唯一的. 此外,字典对象的键和值不可以为空(nil),如果需要在字典中加入一个空值,可以加入NSNull对象 二:不可变字典-NSDictionary 1:初始化(以一个元素和多个元素

OC Foundation框架—集合

Foundation框架—集合 一.NSArray和NSMutableArray (一)NSArray不可变数组 (1)NSArray的基本介绍 NSArray是OC中使用的数组,是面向对象的,以面向对象的形式操纵对象,是不可变数组. C语言数组有一个缺点即数组中只能存放同种数据类型的元素. OC数组只能存放OC对象,不能存放非OC对象,如int,结构体和枚举等. (2)NSArray的创建 (3)NSArray的访问 (4)NSArray的遍历 数组的遍历有以下几种方式: 首先创建一个数组 第

oc中字典的应用详解

NSDictionary *dic=[NSDictionary dictionaryWithObject:@"卢灿小样" forKey:@"lucan"]; NSLog(@"%@",dic); NSLog(@"%@",[dic objectForKey:@"lucan"]); //输出dic键值对个数 NSLog(@"%d",dic.count); NSDictionary *dic1=

python中列表 元组 字典 集合的区别

列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复项的.如果我们扩大清单的范围,统计我们过去一周所有的花费情况,那么这也是一个清单,但这个清单里会有类别不同的项,比如我们买东西是一种花费,交水电费也是一种花费,这些项的类型是可以使不同的.pyt

【学习ios之路:Object-C】字典.集合.

1.不可变数据字典(NSDicionary) 字典:用来存储具有一一对应关系的数据. 一个key 对应一个 value ,key起到了唯一标示的作用,key必须是唯一的,但是一个vlaue可以对应多个key. 字典存储的是无序的元素,一对键值对组成了字典中的一个元素. ①.不可变字典初始化赋值 <span style="font-size:18px;"> //笑笑语法 NSDictionary *dic = @{@"name":@"zhangd