OC第七讲容器类使用方法

一,数组NSArray

1.创建数组对象,使用初始化方法或便利构造器

<span style="font-size:18px;">//NSArray *arr1 = [[NSArray alloc] initWithObjects:@"王辰", @"刘国威", @"郑海坤", nil];
//NSArray *arr2 = [NSArray arrayWithObjects:@"李智", @"魏大为", @"刘天伟", nil];
//NSArray *arr3 = [NSArray arrayWithArray:arr1];
//NSLog(@"%@", arr1);
//NSLog(@"%@", arr2);
//NSLog(@"%@", arr3);
</span>


2.获取元素个数

<span style="font-size:18px;">//- (NSUInteger)count
</span>


3.根据索引值获取对象

<span style="font-size:18px;">//- (id)objectAtIndex:(NSUInteger)index
</span>


4.获取某对象在数组中的索引值

<span style="font-size:18px;">//- (NSUInteger)indexOfObject:(id)anObject
//NSLog(@"%lu", [arr1 indexOfObject:@"郑海坤"]);</span>


5.根据索引值找到相应的对象

<span style="font-size:18px;">//- (NSArray *)objectsAtIndexes:(NSIndexSet *)indexes
//NSArray *temp = [arr1 objectAtIndex:1];</span>


二,可变数组NSMutableArray

1.创建数组对象

<span style="font-size:18px;">NSMutableArray *mArr = [NSMutableArray arrayWithArray:arr1];
for (int i = 0; i < [mArr count]; i++) {
    NSLog(@"%@", mArr[i]);
}
</span>


2.添加元素

<span style="font-size:18px;">//- (void)addObject:(id)anObject                        // 直接添加对象
//- (void)addObjectsFromArray:(NSArray *)otherArray     // 添加另一个数组</span>

<span style="font-size:18px;">[mArr addObject:@"陈佳鸿"];
[mArr addObjectsFromArray:arr2];
[mArr addObject:arr3];
</span>


3.插入元素

<span style="font-size:18px;">//- (void)insertObject:(id)anObject atIndex:(NSUInteger)index
</span>


4.删除元素

<span style="font-size:18px;">//- (void)removeLastObject               //删除最后一个元素
//- (void)removeObject:(id)anObject      //删除指定元素</span>


5.替换元素

<span style="font-size:18px;">//- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject
</span>
<span style="font-size:18px;">[mArr replaceObjectAtIndex:0 withObject:@"王子洁"];</span>

6.交换指定位置的两个元素

<span style="font-size:18px;">//- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2</span>


7.可变数组排序方法

<span style="font-size:18px;">//- (void)sortUsingSelector:(SEL)comparator</span>
<span style="font-size:18px;">[arrNum sortUsingSelector:@selector(compare:)];
NSLog(@"%@", arrNum);
</span>


8.不可变数组方法

<span style="font-size:18px;">//- (NSArray *)sortedArrayUsingSelector:(SEL)comparator</span>
<span style="font-size:18px;">arrNum = [arrNum sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@", arrNum);</span>


三,NSNumber常用方法

1.创建各个类型的数值对象

(1)整型

<span style="font-size:18px;">NSNumber *n1 = [NSNumber numberWithInt:43];
</span>
(2)浮点(单精度)

<span style="font-size:18px;">NSNumber *n2 = [NSNumber numberWithFloat:23.3];
</span>
(3)浮点(双精度)

<span style="font-size:18px;">NSNumber *n3 = [NSNumber numberWithDouble:65.213468];
</span>
(4)长整型
<span style="font-size:18px;">NSNumber *n4 = [NSNumber numberWithLong:13236849];
</span>
(5)字符型

<span style="font-size:18px;">NSNumber *n5 = [NSNumber numberWithChar:'A'];
</span>
都放在一个数组里输出,并排序

<span style="font-size:18px;">NSMutableArray *arrNUmber = [NSMutableArray arrayWithObjects:n1, n2, n3, n4, n5, nil];
NSLog(@"%@", arrNUmber);
[arrNUmber sortUsingSelector:@selector(compare:)];
NSLog(@"%@", arrNUmber);</span>


四,字典NSDictionary 常用方法

1.创建字典对象

<span style="font-size:18px;">NSDictionary *dicYaoGe = [NSDictionary dictionaryWithObjectsAndKeys:
                                  @"瑶哥", @"name",
                                  @"?", @"sex",
                                  @"18", @"age",
                                  @"105", @"weight", nil];
NSLog(@"%@", dicYaoGe);</span>

2.获取所有key值

<span style="font-size:18px;">//- (NSArray *)allKeys
</span>
<span style="font-size:18px;">NSLog(@"%@", [dicYaoGe allKeys]);
</span>

3.获取所有value值

<span style="font-size:18px;">//- (NSArray *)allValues
</span>
<span style="font-size:18px;">NSLog(@"%@", [dicYaoGe allValues]);</span>


4,通过key查询value

//- (id)objectForKey:(id)aKey             
//- (id)valueForKey:(NSString *)key

5,通过value值查询key

//- (NSArray *)allKeysForObject:(id)anObject
NSLog(@"key : %@", [dicYaoGe allKeysForObject:@"18"]);


6,快速遍历 forin遍历

for (NSString *key in dicYaoGe) {
    NSLog(@"%@ : %@",key, [dicYaoGe objectForKey:key]);
}


五,可变字典NSMutableDictionary 常用方法

1,添加键值对

//- (void)setValue:(id)value forKey:(NSString *)key
[dicZiJie setValue:@"LOL" forKey:@"hobby"];


2,修改key对应的value(方法同上)

[dicZiJie setValue:@"2" forKey:@"hobby"];


3,删除键值对

//- (void)removeObjectForKey:(id)aKey
[dicZiJie removeObjectForKey:@"key"];


六,集合NSSet 常用方法

1,创建新的集合对象

NSSet *nanShen = [NSSet setWithObjects:@"曹大哥",@"david",@"保洁大哥",@"保洁大哥", nil];


2,获取元素个数

NSLog(@"%lu", [nanShen count]);


3,获取集合中的某个元素

//- (id)anyObject
//NSLog(@"%@", [nanShen anyObject]);


4,判断集合中是否包含某个对象

//- (BOOL)containsObject:(id)anObject


5,遍历集合,无序

for (NSString *name in nanShen) {
    NSLog(@"%@", name);
}


6,求两个集合的并集

//- (void)unionSet:(NSSet *)otherSet         // 并集
//- (BOOL)intersectsSet:(NSSet *)otherSet     // 交集


七,三种不同类型的容器类放在一个数组里如何遍历

        NSArray *arr1 = [NSArray arrayWithObjects:@"a1", @"a2", @"a3", @"a4", nil];
        NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"d1", @"D1",
                              @"d2", @"D2",
                              @"d3", @"D3",
                              nil];
        NSSet *set1 = [NSSet setWithObjects:@"s1", @"s2", @"s3", @"s4", nil];
        NSArray *bigArr = [NSArray arrayWithObjects:arr1, dic1, set1, nil];
        for (id count in bigArr) {
            NSLog(@"**********************************");
            if ([count class] == [arr1 class]) {      // class代表类型
                for (NSArray *a1 in arr1) {
                    NSLog(@"%@", a1);
                }
                
            } else if([count class] == [dic1 class]){
                for (NSDictionary *d1 in dic1) {
                    NSLog(@"%@--->%@",d1,[dic1 objectForKey:d1]);
                }
                
            } else if([count class] == [set1 class]){
                for (NSSet *s1 in set1) {
                    NSLog(@"%@", s1);
                }
            } else {
                NSLog(@"我去");
            }
        }




















































  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值