NSMutableArray复杂对象排序
来源:互联网 发布:日本阶级固化 知乎 编辑:程序博客网 时间:2024/06/05 22:40
1、 说明:以下程序中NSMutableArray数组中包含的对象是NSDictionary,而下面要实现的排序就是根据NSDictionary中的key代表的value进行比较而排序,如下:
code
//1.对字段的封装
- (NSDictionary *)formateDicWithName:(NSString *)name
value:(NSNumber *)value
color:(UIColor *)color
{
return [NSDictionary dictionaryWithObjectsAndKeys:
name,@"name",
value,@"value",
color,@"color",nil];
}
//2.准备数据
NSMutableArray *result = [NSMutableArray arrayWithCapacity:0];
NSDictionary *deptBal =
[self formateDicWithName:@"储蓄余额"
value: [NSNumber numberWithFloat:30]
color:[UIColor redColor]];
[result addObject:deptBal];
NSDictionary *finBal =
[self formateDicWithName:@"理财产品余额"
value: [NSNumber numberWithFloat:20]
color: [UIColor yellowColor]];
[result addObject:finBal];
NSDictionary *debtBal =
[self formateDicWithName:@"国债余额"
value: [NSNumber numberWithFloat:40]
color: [UIColor blueColor]];
[result addObject:debtBal];
NSDictionary *fundBal =
[self formateDicWithName:@"基金市值"
value: [NSNumber numberWithFloat:10]
color: [UIColor blackColor]];
[result addObject:fundBal];
//3.实现排序
NSArray *newResult =
[result sortedArrayUsingComparator:^(id obj1,id obj2)
{
NSDictionary *dic1 = (NSDictionary *)obj1;
NSDictionary *dic2 = (NSDictionary *)obj2;
NSNumber *num1 = (NSNumber *)[dic1 objectForKey:@"value"];
NSNumber *num2 = (NSNumber *)[dic2 objectForKey:@"value"];
if ([num1 floatValue] > [num2 floatValue])
{
return (NSComparisonResult)NSOrderedAscending;
}
else
{
return (NSComparisonResult)NSOrderedDescending;
}
return (NSComparisonResult)NSOrderedSame;
}];
经过1、2、3三个操作得到的数组newResult,就是根字典NSDictionary中的value所代表的值进行由大到小排序的数组。
- NSMutableArray 复杂 对象 排序
- NSMutableArray复杂对象排序
- NSMutableArray复杂对象排序
- NSMutableArray 排序
- NSMutableArray 排序
- NSMutableArray 排序
- NSMutableArray 排序
- 怎么对包含自定义对象的NSMutableArray排序
- 对复杂对象数组进行排序
- List对于复杂对象排序的方法
- NSArray、NSMutableArray排序
- <<<<< NSMutableArray排序 --- sortedArrayUsingFunction >>>>
- NSMutableArray 排序 ----- sortedArrayUsingFunction
- 关于NSMutableArray的排序
- swift NSMutableArray 排序
- swift NSMutableArray 排序
- [ObjectiveC] NSMutableArray 数字排序
- NSMutableArray替换对象
- 浅尝JMX
- FreeMarker中<#include>和<#import>标签的区别
- document.ready和window.onload的区别
- MapperScannerConfigurer处理过程源码分析(转)
- JQuery cxSelect联动下拉菜单
- NSMutableArray复杂对象排序
- android studio启动模拟器失败
- VS 2015 OpenGL环境搭建
- 使用ajaxfileupload上传文件
- Windows下使用krpanotools命令行生成全景图
- VS 2015 OpenCV环境搭建
- Spring 消息本地化实现(使用注释实现)/使用自定义消息
- LoadRunner监控Tomcat性能以及tomcat环境部署
- PyGobject(五)布局容器之Button篇——Gtk.Button