Objective-c sort array int方法
来源:互联网 发布:蛤的意义知乎 编辑:程序博客网 时间:2024/06/07 10:58
(1)直接调用系统的方法排序int
NSMutableArray *array = [[NSMutableArray alloc]init];
[array addObject:[NSNumber numberWithInt:20]];
[array addObject:[NSNumber numberWithInt:1]];
[array addObject:[NSNumber numberWithInt:4]];
NSArray *sortedArray = [array sortedArrayUsingSelector:@selector(compare:)];
for(int i = 0; i < [sortedArray count]; i++)
{
int x = [[sortedArray objectAtIndex:i]intValue];
NSLog(@"######%d/n", x);
}
(2)用descriptor方法
#import <Cocoa/Cocoa.h>
@interface Node: NSObject {
int x;
int y;
int v;
}
@property int x;
@property int y;
@property int v;
- (id)init:(int)tx y:(int)ty v:(int)tv;
@end
@implementation Node
@synthesize x;
@synthesize y;
@synthesize v;
- (id)init:(int)tx y:(int)ty v:(int)tv {
x = tx;
y = ty;
v = tv;
return self;
}
@end
int main(int argc, char *argv[])
{
NSMutableArray *myMutableArray = [[NSMutableArray alloc]init];
Node *n[2];
n[0] = [[Node alloc]init:2 y:1 v:1];
n[1] = [[Node alloc]init:4 y:2 v:2];
[myMutableArray addObject:n[0]];
[myMutableArray addObject:n[1]];
NSSortDescriptor * sortByA = [NSSortDescriptor sortDescriptorWithKey:@"x" ascending:NO];
[myMutableArray sortUsingDescriptors:[NSArray arrayWithObject:sortByA]];
for(Node *t in myMutableArray) {
NSLog(@"x === %d", t.x);
NSLog(@"y === %d", t.y);
NSLog(@"v === %d", t.v);
}
}
(3)自定义重写方法
/*
Abstract: Constants returned by comparison functions, indicating whether a value is equal to, less than, or greater than another value.
Declaration: enum CFComparisonResult {
kCFCompareLessThan = -1,
kCFCompareEqualTo = 0,
kCFCompareGreaterThan = 1
};
*/
#import <Cocoa/Cocoa.h>
@implementation NSNumber (MySort)
- (NSComparisonResult) myCompare:(NSString *)other {
//这里可以作适当的修正后再比较
int result = ([self intValue]>>1) - ([other intValue]>>1);
//这里可以控制排序的顺序和逆序
return result < 0 ? NSOrderedDescending : result > 0 ? NSOrderedAscending : NSOrderedSame;
}
@end
int main(int argc, char *argv[])
{
NSMutableArray *array = [[NSMutableArray alloc]init];
[array addObject:[NSNumber numberWithInt:20]];
[array addObject:[NSNumber numberWithInt:1]];
[array addObject:[NSNumber numberWithInt:4]];
NSArray *sortedArray = [array sortedArrayUsingSelector:@selector(myCompare:)];
for(int i = 0; i < [sortedArray count]; i++)
{
int x = [[sortedArray objectAtIndex:i]intValue];
NSLog(@"######%d/n", x);
}
}
注:
关于 sortedArrayUsingSelector:@selector(copare:)是默认的排序方法,而你自己可以重写排序方法,比如上面的myCompare
- Objective-c sort array int方法
- 归并排序:Sort:Merge sort using temporary int array(c++)
- Array.Sort方法
- Array.sort自定义方法
- objective-c NSData,Int互转
- javascript 中 Array.sort()方法
- Array类的Sort()方法
- javascript中Array.sort()方法
- Objective-C数量类型-Objective-C int 整数类型
- Objective-C数量类型-Objective-C int 整数类型
- objective-c 下面int 和 NSData数据 互相转换的方法
- [C#]Array.Sort()排序的原理
- objective-c 字符串、日期、Int转换
- objective-c 字符串、日期、Int转换
- JAVA中的Array.sort()方法
- js模拟实现Array的sort方法
- Array.sort(function(){})方法的调用
- [ javascript ] js中array的sort()方法!
- 只要理想和良心在心中:俞敏洪北大开学典礼的发言
- centos5启动和停止那些服务
- An Introduction to Log4cpp
- 深入浅出 Linux设备驱动中断处理介绍
- VC中_T、_TEXT和TEXT宏的作用(来自互联网)
- Objective-c sort array int方法
- FW:Use Log4XX for Logging
- 小议传统分层与新式分层,抑或与DDD分层
- 关于称量球问题的证明
- Answer Wisely
- ubuntu常用软件
- FW: C++ Style Guide : C++ Style Guide
- Error usage of Smart Point
- Linux设备驱动程序第三版学习(6)- 高级字符驱动程序操作(续1) - 进程休眠