OC基础之---- NSArray

本文介绍了Objective-C中的NSArray和NSMutableArray的基础知识,包括创建、访问元素、数组操作和排序。讲解了如何初始化、添加、删除、插入、交换元素,以及如何对数组进行排序。还特别提到了可变数组NSMutableArray的特性及其常用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 OC 中的集合类型:

1.    数组 NSArray, 字典 NSDictionary, 集合 NSSet.

2.    NSArray  继承自NSObject,用来存储一些有序的对象,不可变数组.

二 NSSArray

1.    创建数组

1⃣自定义初始化方法

NSArray *array = [[NSArray alloc]init];    (空数组)

NSLog(@”%@”,array);  打印出来一对小括号(),( )是数组的打印标识

2⃣ 使用便利构造器的方法创建(空数组 array)

NSAaary *array = [NSArray array];

NSLog(@”%@”,array);

2.    初始化数组(initWithObjects:和arrayWithObjects:)

1⃣NSArray *array = [[NSArray alloc]initWithObjects:@”jack”,@”rose”,nil];

nil是数组结束的标志,使用 initWithObjects 可以添加多个元素.

2⃣arrayWithObjects 是创建数组的便利构造器方法,也可以添加多个元素.

3.    通过下标访问数组中的元素,因为我们数组中的对象是有序的,下标也是从0              开始的.

1⃣获取指定下标的对象(objectAtIndex:)

NSString *str = [array objectAtIndex:0];

2⃣ 获取数组的第一个元素对象(firstObject)

NSString *str = [array firstObject];

3⃣获取数组的最后一个元素的对象(lastObject)

 NSString *str =[array lastObject];

4.    获取数组中的元素的个数(count)

NSUInteger n = [array count];

5.    在创建数组的时候,可以创建包含不同类型的元素

NSArray *myArray = nil;

NSDate *aDate = [NSDate distantFuture];

NSValue *aValue = [NSNumber numberWithInt:5];

NSString *aString = @”a string”;

myArray = [NSArrayarrayWithObjects:aDate,aValue,aString,nil];

三可变数组(NSMutableArray)

1.     NSMutableArray 可变数组,存储空间是可变的

2.     可变数组的创建也有两种方法:

1  [[NSMutableArray alloc]initWithCapacity: 0];

2  [NSMutableArray arrayWithObjects:@”程序员”,@”设计师”,@”产品够”,@”运营鼠”,@”客服牛”,@”销售猴”,@”总经理”,nil];

3  向数组中添加对象(可以向可变数组中添加多个元素)

 [mArray addObject:@”苍老师”];

3.     将指定数组对象复制到对应数组中(addObjectsFromArray:)

[mArray addObjectsFromArray:array];

4.     指定位置插入对象(insertObject:@”*1*” atIndex:0)

[mArray insertObject:@”*1*” atIndex:0];

5.     删除指定位置的对象(removeObjectAtIndex:)

[mArray removeObjectAtIndex:0];

6.     删除某个对象(removeObject:)

[mArray removeObject:@”3”];

7.     删除最后一个对象(removeLastObject)

[mArray removeLastObject];

[mArray removeObjectAtIndex;(count - 1)];

8.     删除所有的对象,清空数组(removeAllObjects)

[mArray removeAllObjects];

9.     交换两个元素的位置(exchangeObjectAtIndex:2 withObjectAtIndex:1)

[mArray exchangeObjectAtIndex:2 withObjectAtIndex:1];

10.  遍历数组的方法(使用 for 循环,也可以使用快速枚举 forin)

1⃣  for(NSUInteger i = 0;i <[mArray count];i++ ){

NSLog(@”%@”,[mArray objectAtIndex]);

}

2⃣ 快速枚举(增强型 for 循环)

OC中提供的快速遍历集合的循环,使用 for in ,不需要关心数组元素的个数,内部自动处理;每一次循环都把当前数组元素的值赋值给你提供的变量(比如: NSString *str); 在内部添加 NSLog 语句,或者其他功能语句,会出错

注意:在快速枚举中,不能对数据元素做修改操作,比如说删除某个元素

for(NSString *str in mArray){

NSLog(@”%@”,str);

}

11.  数组排序

1⃣  使用冒泡排序

for(NSUInteger i = 0; i<[mArray count] – 1;i++){

  for(NSUInteger j =0; j<[mArray count] – 1 - i;j++){

if([[mArray objectAtIndex:j] compare:[mArrayobjectAtIndex:j+1]] == NSOrderedDescending)

//交换元素的位置

[mArray exchangeObjectAtIndex:j withObjectAtIndex: (j +1)];

   }

}

2⃣ 数组排序

@selecor()是一个选择器,()内填写的是选择的方法

NSArray *sort = [mArray sortedArrayUsingSelector:@selector(compare:)];

For(NSString *str in sort){

   NSLog(@”%@”,str);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值