obj-c怎么有没有数组uniq的操作-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

obj-c怎么有没有数组uniq的操作

a123456678 2016-07-19 17:03:33 1391

我有这样一个数组

NSArray *a = [NSArray arrayWithObjects:@"a", @"b", @"c", @"a", @"b", @"d", nil];
首先需要去掉重复的,活的这样的

NSArray *a = [NSArray arrayWithObjects:@"a", @"b", @"c", @"d", nil];
我现在做的就是用遍历生成的,有没有什么办法可以高效完成的。
另外的需求就是要生成这样的数组

NSArray *a = [NSArray arrayWithObjects:

[NSDictionary arrayWithObjectsAndKeys:@"2", @"a", nil],
[NSDictionary arrayWithObjectsAndKeys:@"2", @"b", nil],
[NSDictionary arrayWithObjectsAndKeys:@"1", @"c", nil],
[NSDictionary arrayWithObjectsAndKeys:@"1", @"d", nil],
nil];

键是唯一值,值是数量

分享到
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:58:34

    如果结果的顺序无所谓,可以用Key Value Coding:

    NSArray *result = [a valueForKeypath:@"@distinctUnionOfObjects.self"];
    如果希望能保持原来的顺序,在iOS 5.0或OS X 10.7以上版本,可以用:

    NSArray *orderedResult = [[NSOrderedSet orderedSetWithArray:a] array]
    但这只是开发高效,运行效率不一定比自己实现的快。

    0 0
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章