
iOS开发中,需要对二维数组进行排序,这里利用字典进行排序,分别进行升序和降序的排序,代码:
//初始化二维数组
NSArray *sortArray =
[[NSArrayalloc] initWithObjects:[NSArrayarrayWithObjects:@"file1",@"adsfsa", nil],
[NSArrayarrayWithObjects:@"file4",@"asfdasfs", nil],
[NSArrayarrayWithObjects:@"file2",@"wefxdfsf", nil],
[NSArrayarrayWithObjects:@"file3",@"fgsdaq", nil],
nil];
//将二维数组赋值给字典
NSMutableDictionary *dic=[[NSMutableDictionaryalloc] init];
for (int i=0; i<sortArray.count; i++) {
[dic setObject:sortArray[i][1] forKey:sortArray[i][0]];
}
//把key进行降序排序
NSArray* arr1 = [dic allKeys];
arr1 = [arr1 sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){
NSComparisonResult result = [obj1 compare:obj2];
return result==NSOrderedDescending;
}];
//按照降序输出
for(NSString* str in arr1){
NSLog(@"%@:%@",str, [dic objectForKey:str]);
}
NSLog(@"==============");
//把key进行升序排序
NSArray* arr = [dic allKeys];
arr = [arr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){
NSComparisonResult result = [obj1 compare:obj2];
return result==NSOrderedAscending;
}];
//按照升序输出
for(NSString* str in arr){
NSLog(@"%@:%@",str, [dic objectForKey:str]);
}
结果:
2016-04-13 21:27:47.538 Sorting contrast[3553:261277] file1:adsfsa
2016-04-13 21:27:47.539 Sorting contrast[3553:261277] file2:wefxdfsf
2016-04-13 21:27:47.539 Sorting contrast[3553:261277] file3:fgsdaq
2016-04-13 21:27:47.539 Sorting contrast[3553:261277] file4:asfdasfs
2016-04-13 21:27:47.539 Sorting contrast[3553:261277] ==============
2016-04-13 21:27:47.539 Sorting contrast[3553:261277] file4:asfdasfs
2016-04-13 21:27:47.540 Sorting contrast[3553:261277] file3:fgsdaq
2016-04-13 21:27:47.540 Sorting contrast[3553:261277] file2:wefxdfsf
2016-04-13 21:27:47.540 Sorting contrast[3553:261277] file1:adsfsa