OC中数组的使用方法

#import <Foundation/Foundation.h>

int main(int argc, const char *
argv[])

{

// 创建数组

NSArray *arr1 = nil;

//    NSLog(@"%p", arr1);

NSObject *obj = [NSObject new];

arr1 = [NSArray arrayWithObjects:@"One", @"Two", @"Three",
obj, nil];//结束标识,相当于C语言的“\0”

//    NSLog(@"%p", arr1);

NSLog(@"arr1: %@",
arr1);

// 推荐以下的新语法

NSString *str = @"Hello";

NSArray *arr2 = @[@"zhangsan", @"lisi", @"wangwu", @"zhaoliu" ,@"tianqi",
str];//这样的方法自己主动在后面加入了nil

NSLog(@"arr2: %@",
arr2);

// 訪问数组成员 objectAtIndex

//    NSObject *tmpObj = [arr1 objectAtIndex:3];

id tmpObj = [arr1 objectAtIndex:3];

NSLog(@"tmpObj: %@",
tmpObj);

// 推荐使用以下的新语法

tmpObj = arr2[2];

NSLog(@"arr2[2]: %@",
tmpObj);

// 可变数组

NSMutableArray *firstArr = [NSMutableArray arrayWithCapacity:30];

// 加入

[firstArr addObject:@"One"];

[firstArr addObject:@"Two"];

[firstArr addObject:@"Three"];

[firstArr addObject:@"Four"];

[firstArr addObject:@"Five"];

NSLog(@"The Mutable Array: %@",
firstArr);

NSMutableArray *secArr = [NSMutableArray arrayWithArray:arr2];

NSLog(@"secArr: %@",
secArr);

// 删除

[secArr removeObject:@"tianqi"];

NSLog(@"==secArr: %@",
secArr);

[secArr removeObjectAtIndex:2];

NSLog(@"===secArr: %@",
secArr);

// 插入

[secArr insertObject:@"wangwu" atIndex:2];//id 是对象 
index 是位置

NSLog(@"after insert: %@",
secArr);

// 替换

NSObject *someObj = [NSObject new];

[secArr replaceObjectAtIndex:4 withObject:someObj];

NSLog(@"after replace: %@",
secArr);

// C语言遍历数组

NSUInteger number = [secArr count];

for (int i
= 0; i < number; i++) {

id obj = secArr[i];

NSLog(@"%@",
obj);

}

// 通过枚举器来遍历数组(正着遍历)

NSEnumerator *enum1 = [secArr objectEnumerator];

id obj1;

NSLog(@"*************************");

while (obj1 = [enum1 nextObject])
{

NSLog(@"obj1: %@",
obj1);

}

// 通过枚举器来遍历数组(倒着遍历)

NSEnumerator *enum2 = [secArr reverseObjectEnumerator];

while (obj1 = [enum2 nextObject])
{

NSLog(@"reverse: %@",
obj1);

}

NSLog(@"============================");

// 高速枚举

for (id obj in secArr)
{

NSLog(@"Fast Enumeration: %@",
obj);

}

return 0;

}

时间: 2024-10-10 08:02:56

OC中数组的使用方法的相关文章

Swif中数组相比OC中数组的新增方法

1) Swfit 中的数组 只能保存相同类型的值,不同于OC 与 Java 相同 2)      Swift初始化方法 var s0 = [1,2,3,4,5] var s1 :[Int] = [1 ,2 ,3 ,4 ,5] var s2: [String] var s3 = [Int]() 在swift 中  如果真行复制操作     s3 = s1   ,  s3 会复制一份s1 的值,是一次深copy.两份值互不影响. s3[0]的值发生了改变,但s1的值没有改变.输出 是1 , 2 ,3

oc中字典的实现方法详解

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

iOS中数组遍历的方法及比较

数组遍历是编码中很常见的一种需求,我们来扒一拔iOS里面都有什么样的方法来实现,有什么特点. 因为iOS是兼容C语言的,所以C语言里面的最最常见的for循环遍历是没有问题的. 本文中用的数组是获取的系统的语言数组,大约有30多个数据,虽然还不够模拟大批量的数据,但对于方法的验证是没有问题的了. NSArray *langArray = [[NSUserDefaults standardUserDefaults] arrayForKey:@"AppleLanguages"]; 第一种方法

Swift的数组与OC中数组的区别

相同的值可以多次出现在一个数组的不同位置: Swift中的数组,数据值在被存储进入到某个数组之前类型必须明确,可以显示的类型标注或者类型推断.而且,Swift中的数组不必是对象类型. OC中的NSArray和NSMutableArray,他们可以存储任何类型的实例,而且不提供他们返回对象的任何本质信息. Swift的数组与OC中数组的区别,布布扣,bubuko.com

javascript中数组常用的方法

在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法.数组是继承自Object的原型,并且他对typeof没有特殊的返回值,他只返回'object'. 运行[] instanceof Array他会返回ture.虽然结果是这样,但也有复杂的类数组对象,如字符串或arguments对象,但arguments对象并非是Array的实例,但他却拥有length属性,而且他的值是可以被索引的,因此他可以像一个数组那样被遍历. 这本文中,我将介绍数组原型的一

javascript中数组的concat()方法 - 数组连接

1 <html> 2 <head> 3 <title>数组的concat()方法</title> 4 5 <script> 6 /* 7 数组的concat()方法: 8 1.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. 9 2.返回一个新的数组.该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的. 10 如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组. 11 */

iOS中数组的排序方法

1函数介绍与实例 函数一:- (void)sortUsingSelector:(SEL)comparator; 适用于数组中的元素自带比较函数时: 数组排序函数,调用该函数的对象为数组,comparator是调用该函数的数组中的元素的方法.函数参数类型为数组中的元素类型或者id类型,在调用时不需要传递参数,排序过程不可见,该函数执行时:循环取出各个元素,进行比较,然后放到合适的位置 使用实例: 将数组中的元素按照字符串大小排序: NSMutableArray*array = [[NSMutabl

JS中数组的迭代方法和归并方法

昨天总结的JavaScript中的数组Array方法 数组的迭代方法 ES5中为数组定义了5个迭代方法.每个方法都要接收两个参数:要在每一项上面运行的函数和(可选的)运行该函数的作用域对象---影响this的值. 传入方法中的函数会介绍三个参数:1.数组项的值 2. 该项在数组的中位值 3. 数组对象本身: every()和some()方法  every():对数组中的每一项运行给定函数,如果每一项都返回true,则返回true,否则false:  some():对数组中的每一项运行给定函数,如

Javascript中数组的判断方法

摘要: 1.数组检测的方法: 1) typeof . 2) instanceof . 3) constructor . 4) Object.prototype.toString. 5) Array.isArray(). 以上为数组检测的方法,但是这些方法中: Array.isArray()方法是最为简单方便的方法,但是存在版本支持性问题,没有版本支持性问题且较好的检测方法是使用Object.prototype.toString结合call()方法来检查,通常数组检测中我们常用的做法是两种方法结合