//
// main.m
// OC2_数组操作
//
// Created by zhangxueming on 15/6/11.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <Foundation/Foundation.h>
//NSArray int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *array1 = [[NSArray alloc] initWithObjects:@"one",@"two",@"three",@"four",@"five", nil];
//计算数组的元素的个数
NSInteger cnt = [array1 count];
NSLog(@"cnt = %li", cnt);
//获取指定位置的对象
id obj = [array1 objectAtIndex:];
NSLog(@"obj = %@", obj);
//添加数组元素
NSArray *array2 = [array1 arrayByAddingObject:@"six"];
NSLog(@"array2 = %@", array2); //将传入数组中的所有元素添加到数组中
NSArray *otherArray = [[NSArray alloc] initWithObjects:@"hello",@"world", nil];
NSArray *array3 = [array1 arrayByAddingObjectsFromArray:otherArray];
NSLog(@"array3 = %@", array3); //用给定的分割符连接数组中的元素
NSString *str = [array3 componentsJoinedByString:@"##"];
NSLog(@"str = %@", str);
//判断是否包含某个对象
BOOL ret = [array3 containsObject:@"hello"];
NSLog(@"ret = %i", ret) ;
//返回两个数组中第一个相同的对象
id obj2 = [array3 firstObjectCommonWithArray:otherArray];
NSLog(@"obj2 = %@", obj2); //返回传入对象在数组中第一次出现的位置
NSArray *array4 = [NSArray arrayWithObjects:@"one",@"two",@"three",@"one",@"two", nil];
NSUInteger index = [array4 indexOfObject:@"two"];
NSLog(@"index = %lu", index); //返回传入对象在指定范围内第一次出现的位置
NSUInteger index2 = [array4 indexOfObject:@"two" inRange:NSMakeRange(, )];
NSLog(@"index2 = %lu", index2); //判断两个数组是否相等
BOOL ret3 = [array2 isEqualToArray:array3];
NSLog(@"ret3 = %d", ret3);
//获取数组中的第一个元素
id obj3 = [array4 firstObject];
NSLog(@"obj3= %@", obj3);
//获取数组中最后一个元素
id obj4 = [array4 lastObject];
NSLog(@"obj4 = %@", obj4); //数组的遍历
//方法一: 下标法
NSArray *array5 = @[@"one",@"two",@"three",@"four"];
NSUInteger len = [array5 count];
for (NSInteger i=; i<len; i++) {
NSLog(@"%@", [array5 objectAtIndex:i]);
}
//方法二: 枚举器法
//生成枚举器对象
NSEnumerator *enumerator = [array5 objectEnumerator];
id item = nil;
while (item = [enumerator nextObject]) {
NSLog(@"item = %@", item);
}
//倒序遍历数组
NSEnumerator *reverseEnumerator = [array5 reverseObjectEnumerator];
id item2 = nil;
while (item2 = [reverseEnumerator nextObject]) {
NSLog(@"item = %@", item2);
} //方法三: 快速枚举法
for (id item in array5) {
NSLog(@"%@", item);
} //数组排序
NSArray *array6 = @[@"one",@"two",@"three",@"four",@"five"];
NSArray *sortArray = [array6 sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"sortArray = %@", sortArray);
//数组提取
NSArray *subArray = [array6 subarrayWithRange:NSMakeRange(, )];
NSLog(@"subArray = %@", subArray); //以给定下标集合提取数组
NSMutableIndexSet *indexSet = [[NSMutableIndexSet alloc] initWithIndex:];
[indexSet addIndex:];
[indexSet addIndex:];
NSArray *subArray2 = [array6 objectsAtIndexes:indexSet];
NSLog(@"subArray2 = %@", subArray2);
}
return ;
}