NSArray中的最大值和最小值

来源:互联网 发布:软件测试需要linux 编辑:程序博客网 时间:2024/04/25 03:51

参考自:http://stackoverflow.com/questions/15931112/finding-the-smallest-and-biggest-value-in-nsarray-of-nsnumbers

1.数组排序

NSArray *numbers = @[@2.1, @8.1, @5.0, @.3];numbers = [numbers sortedArrayUsingSelector:@selector(compare:)];float min = [numbers[0] floatValue];float max = [[numbers lastObject] floatValue];

2.KVC,使用"doubleValue"

NSNumber *max=[numbers valueForKeyPath:@"@max.doubleValue"];NSNumber *min=[numbers valueForKeyPath:@"@min.doubleValue"];

3.KVC,使用"self"

NSNumber *max=[numbers valueForKeyPath:@"@max.self"];NSNumber *min=[numbers valueForKeyPath:@"@min.self"];

4.for循环

float xmax = -MAXFLOAT;float xmin = MAXFLOAT;for (NSNumber *num in numbers) {    float x = num.floatValue;    if (x < xmin) xmin = x;    if (x > xmax) xmax = x;}

5.代码块

__block float xmax = -MAXFLOAT;__block float xmin = MAXFLOAT;[numbers enumerateObjectsUsingBlock:^(NSNumber *num, NSUInteger idx, BOOL *stop) {    float x = num.floatValue;    if (x < xmin) xmin = x;    if (x > xmax) xmax = x;}];


0 0