数组处理方法 API文档

来源:互联网 发布:linux idle process 编辑:程序博客网 时间:2024/06/06 17:24
数组的价值:(1)存数多个元素(2)存储元素只能是对象,对象可以是不同类型(3)数组是一个有序的集合(4)数组中的元素可以重复,而且重复的元素可以成为数组元素
NSArray  不可变数组对象

Creating an Array 利用便利构造器方法   

1. arrayWithObjects:

Creates and returns an array containing the objects in the argument list.

创建并返回包含在参数列表中的对象的数组。

+ (instancetype)arrayWithObjects:(id)firstObj,,

2. initWithObjects:

Initializes a newly allocated set with members taken from the specified list of objects.

初始化一个新分配的一套从对象的指定名单中的成员。

- (instancetype)initWithObjects:(id)firstObj
创建数组对象
        //1.使用便利构造器
        
//1.arrayWithObjects 元素与元素之间用逗号间隔  输出格式 (aa,bb,cc)
        
//2.nil结束 nil后面的元素都不会放入数组中
        
NSArray *arr1 = [NSArray arrayWithObjects:@"aa",@"bb",@"5",nil,@"cc"nil];
        
NSLog(@"arr1 = %@",arr1);//arr1 = (aa,bb,5)
        
//2.使用初始化方法
        
NSArray *arr2 = [[NSArray allocinitWithObjects:@"aa",@"bb",@"5",nil,@"cc",nil];
        
NSLog(@"arr2 = %@",arr2);//arr2 = (aa,bb,5)

3. count

Returns the number of objects currently in the array.

返回当前阵列的对象的数量。

- (NSUInteger)count 
获取元素个数
        
NSUInteger count = [arr2 count];
         
NSLog(@"count = %lu",count); //count = 3;

4. objectAtIndex:

Returns the object at the specified index of the set.

返回集合的指定索引处的对象。

- (id)objectAtIndex:(NSUInteger)index

5. firstObject

Returns the first object in the array.

返回的数组中的第一个对象。

- (id)firstObject 

6. lastObject

Returns the last object in the ordered set.


返回的有序集合的最后一个对象。
- (id)lastObject
根据索引值获取对象
        
//(1)获取制定下标的元素
        
NSString *str = [arr2 objectAtIndex:1];
        
NSLog(@"str = %@",str);//str = bb;
        
//(2)获取数组中第一个元素 //The first object in the array. If the array is empty, returns nil. firstlast方法比objectAtIndex更加安全,当数组元素为空时会返回null,objectAtIndex会造成程序的crash.即数组下标越界.
        
NSString *str1 = [arr2 firstObject];
        
NSLog(@"str1 = %@",str1);//str1 = aa
        
NSString *str2 = [arr2 objectAtIndex:0];
        
NSLog(@"str2 = %@",str2);//str2 = aa
        
//(3)获取数组中最后个元素
        
NSString *str3 = [arr2 lastObject];
        
NSLog(@"str3 = %@",str3);//str3 = 5

7.indexOfObject:

Returns the index of the specified object.

返回指定对象的索引。

- (NSUInteger)indexOfObject:(id)object
获取数组对象在数组中的索引值; Returns the lowest index whose corresponding array value is equal to a given object.数组中的元素可以重复,返回的为第一个.
        
NSUInteger index = [arr2 indexOfObject:@"5"];
        
NSLog(@"index = %lu",index);//index = 2

8. containsObject:
Returns a Boolean value that indicates whether a given object is present in the set.
返回一个布尔值,表示给定的对象是否存在于集合中。
- (BOOL)containsObject:(id)anObject
判断是否包含某个对象. Returns a Boolean value that indicates whether a given object is present in the set.//返回值为bool类型.
        
BOOL isExist = [arr2 containsObject:@"aa"];
        
NSLog(@"isExist = %d",isExist);//isExist = 1

9. sortedArrayUsingSelector:

Returns an array that lists the receiving array’s elements in ascending order, as determined by the comparison method specified by a given selector.

- (NSArray *)sortedArrayUsingSelector:(SEL)comparator
数组排序
        
NSArray *sortArr = [arr2 sortedArrayUsingSelector:@selector(compare:)];//这里传入的是比较方法
        
NSLog(@"sortArr = %@", sortArr);

10.forin  

快速遍历(快速枚举)
        
for (int i = 0; i < [arr2 count]; i++) {
            
NSString *str4 = [arr2 objectAtIndex:i];
            
NSLog(@"%@",str4);
        }
        
/*
        for (type *object(
数组元素类型 对象名字) in collection(集合即:要取元素的数组)) {
         statements 
输出语句
         }       forin 
快速遍历,用于将集合中的元素遍历出来.
        */

        
        
for (NSString *str4 in arr2) {
            
NSLog(@"%@",str4);
        }



NSMutableArray  可变的数组对象处理函数
首先创建数组对象,然后针对数组对象进行操作
//创建数组对象
        NSMutableArray *arr1 = [[NSMutableArray alloc] initWithObjects:@"aa",@"bb",@"cc",@"vbvh"@"jd",@"jhsfcu",@"dfdh", nil];

1.addObject:

Inserts a given object at the end of the array.

- (void)addObject:(id)anObject
//1.添加元素
        [arr1 addObject:@"Frank"];
        NSLog(@"arr1 = %@",arr1);

2.insertObject:atIndex:

Inserts a given object into the array's contents at a given index.

- (void)insertObject:(id)anObject atIndex:(NSUInteger)index
//2.插入元素 Duck添加到aa的后面
        [arr1 insertObject:@"Duck" atIndex:1];
        NSLog(@"arr1 = %@",arr1);

3. removeAllObjects

Empties the array of all its elements.

- (void)removeAllObjects

4.removeObjectAtIndex:

Removes the object at index .

- (void)removeObjectAtIndex:(NSUInteger)index
//3.删除元素
        //1.
Duck删除
        [arr1 removeObjectAtIndex:3];
        NSLog(@"arr1 = %@",arr1);
        //2.
删除所有元素

       // [arr1 removeAllObjects];
        // NSLog(@"arr1 = %@",arr1);

5.replaceObjectsInRange:withObjectsFromArray:range:

Replaces the objects in the receiving array specified by one given range with the objects in another array specified by another range.

- (void)replaceObjectsInRange:(NSRange)aRange withObjectsFromArray:(NSArray *)otherArray range:(NSRange)otherRange
//4.替换元素
        //
Frank替换成"shuaige"
        [arr1 replaceObjectAtIndex:6 withObject:@"shuaige"];
        NSLog(@"arr1 = %@",arr1);

6.exchangeObjectAtIndex:withObjectAtIndex:

Exchanges the objects in the array at given indices.

- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2
//5.交换指定的位置
        [arr1 exchangeObjectAtIndex:0 withObjectAtIndex:2];
        NSLog(@"arr1 = %@",arr1);

7.sortUsingSelector:

Sorts the array’s elements in ascending order, as determined by the comparison method specified by a given selector.

- (void)sortUsingSelector:(SEL)comparator
//6.对原数组进行排序  按照ASCII码进行排序
        [arr1 sortUsingSelector:@selector(compare:)];
        NSLog(@"arr1 = %@",arr1);
//7.快速遍历
        for (NSString *str5 in arr1) {
            NSLog(@"%@",str5);
       }
        //
如果数组中元素类型不同,输出时使用统一的泛型 id 可代表所有的对象类型.
        for (id str5 in arr1) {
            NSLog(@"%@",str5);
        }
数值对象 NSNumber

1.numberWithChar:

Creates and returns an NSNumber object containing a given value, treating it as a signed char.

+ (NSNumber *)numberWithChar:(char)value


2.charValue

Returns the receiver’s value as a char.

- (char)charValue 
//将基本数据类型转化成数值对象
//1.定义接本数据类型变量
        
char a = 'f';
        
int b = 20;
        
short c = 100;
        
long d = 1000;
        
float e = 12.345;
        
double f =  10.2222;
        
BOOL isTrue = YES;
//2.将基本数据类型转换成数据对象  全部转换成对应的数值 存储在堆区
        
//相当于中介
        
NSNumber *a1 = [NSNumber numberWithChar:a ];
        
NSNumber *a2 = [NSNumber numberWithInt:b ];
        
NSNumber *a3 = [NSNumber numberWithShort:c ];
        
NSNumber *a4 = [NSNumber numberWithLong:d ];
        
NSNumber *a5 = [NSNumber numberWithFloat:e ];
        
NSNumber *a6 = [NSNumber numberWithDouble:f ];
        
NSNumber *a7 = [NSNumber numberWithBool:isTrue];
        
NSArray *arr = [NSArray arrayWithObjects:a1,a2,a3,a4,a5,a6,a7 ,nil];
        
NSLog(@"%@",arr);//打印数组
//打印数值对象
        
NSLog(@"%@",a1);
        
NSLog(@"%@",a2);
        
NSLog(@"%@",a3);
        
NSLog(@"%@",a4);
        
NSLog(@"%@",a5);
        
NSLog(@"%@",a6);
        
NSLog(@"%@",a7);
//3.NSNumber转换成基本数据
        
char b1 = [a1 charValue];
        
NSLog(@"%c",b1);
        
int b2 = [a2 intValue];
        
NSLog(@"%d",b2);
//4.NSNumber类型数据的比较
        
NSLog(@"%ld",[a1 compare:a2]);//注意对象比较对向
上述具体结果如下:
2014-08-07 18:59:26.555 LessonNnumber[8367:303] (
    102,
    20,
    100,
    1000,
    "12.345",
    "10.2222",
    1
)
2014-08-07 18:59:26.556 LessonNnumber[8367:303] 102
2014-08-07 18:59:26.557 LessonNnumber[8367:303] 20
2014-08-07 18:59:26.557 LessonNnumber[8367:303] 100
2014-08-07 18:59:26.558 LessonNnumber[8367:303] 1000
2014-08-07 18:59:26.558 LessonNnumber[8367:303] 12.345
2014-08-07 18:59:26.558 LessonNnumber[8367:303] 10.2222
2014-08-07 18:59:26.559 LessonNnumber[8367:303] 1
2014-08-07 18:59:26.559 LessonNnumber[8367:303] f
2014-08-07 18:59:26.559 LessonNnumber[8367:303] 20
2014-08-07 18:59:26.560 LessonNnumber[8367:303] 1
































0 0
原创粉丝点击