ios 快速获取数组中的最大值、最小值

在开发过程中,经常会用到NSArray,然后找出数组中的最大值、最小值,很多时候我们一般用for循环来封装一个算法求最值,虽然可以但是还是不够快速。其实Apple底层可我们封装了一个十分好用的API,可以通过valueForKeyPath方法来设置你想要获取的一些数组。

NSMutableArray* array = [NSMutableArray array];

for (int i = 0; i < 10; i++) {

    CGFloat num = arc4random() % 100 + 1;

    [array addObject:[NSNumber numberWithFloat:num]];

}

CGFloat maxValue = [[array valueForKeyPath:@"@max.floatValue"] floatValue];

CGFloat minValue = [[array valueForKeyPath:@"@min.floatValue"] floatValue];

min、max是NSArray的私有属性,通过.语法是拿不到的,会报错的。类似这种私有属性还有

@”@avg.floatValue” (获取平均值), 

@”@count.floatValue”(获取数组大小) 

@"@sum.floatValue"(求和)

还可以去重

NSArray *array = @[@"a", @"wechat", @"qq", @"msn", @"wechat"];

NSArray *deleltNewA = [array valueForKeyPath:@"@distinctUnionOfObjects.self"];

你可能感兴趣的:(ios 快速获取数组中的最大值、最小值)