您的位置:首页 > 其它

数组遍历排序

2016-02-14 21:50 267 查看
// 集合的遍历 NSSet(集合)

NSDictionary *dictionary = [NSDictionary
dictionaryWithObjectsAndKeys:@"11",
@"a", @"22",
@"b", @"33",
@"c", nil];

NSLog(@"%@", dictionary);

for (int i =
0; i < dictionary.count; i++) {

// 先根据allKeys以及下标i取出key值

NSString *key = [dictionary.allKeys
objectAtIndex:i];

NSLog(@"%@", [dictionary
objectForKey:key]);

// NSLog(@"%@", key);

// NSString *value = [dictionary.allValues objectAtIndex:i];

// NSLog(@"%@", value);

}

// for in 遍历 (OC一般用它就够了)

NSArray *array =
@[@"q", @"w",
@"e", @"r",
@"d", @"f"];

for (NSString *str
in array) {

NSLog(@"%@", str);

}

NSMutableArray *array1 = [NSMutableArray
arrayWithArray:array];

for (NSString *str1
in array) {

NSLog(@"%@", str1);

if ([str1
isEqualToString:@"w"]) {

[array1 replaceObjectAtIndex:[array1
indexOfObject:str1 ] withObject:@"ww"];

}

// 男神小贴士:
使用for in 循环遍历集合的时候,不能修改 “正在”
遍历的集合

// 当涉及到需要修改正在循环的集合可以复制一份,循环复制出的一份,而修改自己本身

}

for (NSString *str
in array1) {

NSLog(@"%@", str);

}

// NSEnumerator --
枚举遍历

//正序遍历
和 倒序遍历

// NSEnumerator *arrayEnume = [array1 objectEnumerator]; //
正序

NSEnumerator *arrayEnume = [array1
reverseObjectEnumerator]; // 倒序

// 取对象

NSString *str =
nil;

while (str = [arrayEnume
nextObject]) {

NSLog(@"��%@", str);

}

// 排序

NSArray *sortArray =
@[@"1", @"2",
@"3", @"4",
@"7"];

// NSSortDescriptor --
排序描述符 (老三步)

NSSortDescriptor *des = [[NSSortDescriptor
alloc]
initWithKey:nil
ascending:YES];
// YES-升序 NO-降序

// Key -- 对象内属性对应的键值,字符串这样的对象使用nil

// 常见存储描述的数组
(可以添加多个限定条件,比如按姓名排序,然后按年龄)

// 排序并承接完成排序的数组

// 不可变数组的方法

// NSArray *descriptors = [NSArray arrayWithObject:des];

NSArray *over = [sortArray
sortedArrayUsingDescriptors:[NSArray
arrayWithObject:des]];

NSLog(@"%@", over);

// 可变数组

NSMutableArray *mutableArray = [NSMutableArray
arrayWithArray:sortArray];

// 可变数组可以改变自身

[mutableArray sortUsingDescriptors:[NSArray
arrayWithObject:des]];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: