iOS开发之数组、字典、集合

来源:互联网 发布:mac app store更改用户 编辑:程序博客网 时间:2024/04/30 20:01

一、数组

Foundation框架中,数是有序的对象的集合。

C语言数组只能存放同种数据类型的元素。

OC数组只能存放OC对象,不能存放非OC对象,如int,结构体和枚举等 。

也存在可变数组和不可变数组之分,可变数组是不可变数组的子类。

取值方式: 下标

(一)NSArray 不可变数组

(1)NSArray的创建

a. 快速创建一个NSArray对象

<span style="font-size:18px;">NSArray *array = @[@"1444"];</span>

b.初始化

- (id)initWithObjects:(id)firstObject,...

 (2)NSArray的遍历

     for循环遍历 (forin )快速遍历


(3)排序

// 对数组进行排序    NSArray *array = [[NSArray alloc] initWithObjects:@"7", @"8", @"3", @"9", nil];        // SEL类型,代表一个方法选择器        // 选择一个字符串比较的方法, 括号中写一个方法的方法名    SEL selector = @selector(compare:);    NSArray *sortedArr = [array sortedArrayUsingSelector:selector];
(二)可变数组NSMutableArray

注意:NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法

基本使用:

(1)初始化:

- (instancetype)initWithCapacity:(NSUInteger)numItems 

+ (instancetype)arrayWithCapacity:(NSUInteger)numItems;

(2)增加对象(在数组末尾增加一个对象)

- (void)addObject:(id)anObject;
(3)删除对象

删除指定索引位置的对象

- (void)removeObjectAtIndex:(NSUInteger)index;
删除全部对象

- (void)removeAllObjects;

(4)更改某个位置的对象

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

二、字典(NSDictionary)

(一)NSDictionary 不可变字典

OC中的NSDictionary:根据key找到value。里面存储的东西都是键值对。

(1)创建字典

 // 创建一个字典    NSDictionary *diction = [[NSDictionary alloc] initWithObjectsAndKeys:@"q", @"name", @"m", @"sex", @"22", @"age", nil];

快速创建

<span style="font-size:18px;">    NSDictionary *dic6 = @{@"name":@"天天",@"age":@"456"};</span>

注意:这种快速创建的方式只适用于不可变字典。


(2)对字典的快速枚举

    NSArray *keys = [dic allKeys];    for (NSString *key in keys) {        NSString *object = dic[key];// dic[key]快速访问        NSLog(@"%@,%@",key,object);            }
(3)从key获得Value

- (id)objectForKey:(id)aKey;

(二)可变字典NSMutableDictionary

(1)增加和修改可变字典的内容

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

(2)删除可变字典的内容

- (void)removeObjectForKey:(id)aKey;

// 字典使用中注意的事项

(1)字典中,key是唯一个,value可以相同,

(2)字典中key一般用NSString 或者NSNumber类型,而只可以是任意类型

(3)值对象不能唯空;

三、集合(无序)

(一)NSSet 不可变集合

不能存放相同的对象,是一组单值对象的集合,内部元素是无序的。

(1)创建

  // 集合    // 1. 不能重复    // 2. 没有顺序    // 3. 随便取值    // 4. 必须是对象类型    NSSet *set = [[NSSet alloc] initWithObjects:@"458", @"xiabinshan", @"1", @"3", @"5", nil];

(2)取值

   // 在集合中取值    NSString *setObject = [set anyObject];
 
 // 集合是否包含某个对象        BOOL condition = [set containsObject:@"图图图退"];


(二)可变集合NSMutableSet

(1)初始化方法

<span style="font-size:18px;"><span style="font-family:Menlo;color:#00b1ff;"><span style="font-size: 18px;"> </span></span>  NSMutableSet *mutableSet = [[NSMutableSet alloc] initWithCapacity:1];// 也可以用不可变集合的赋值方法</span>


  //  set = [set setByAddingObjectsFromSet:mutableSet];

(2)增加对象

  [mutableSet addObject:@"6"];

(3)删除对象

    [mutableSet removeObject:@"8"];













0 0