您好,匿名用户
随意问技术百科期待您的加入

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

0 投票

我有这样一个数组

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];

键是唯一值,值是数量

用户头像 提问 2012年 12月1日 @ Ahri 上等兵 (292 威望)
分享到:

1个回答

0 投票

自己实现吧,也不算复杂。去重主要有两种算法:

1. 元素个数不多(小于1M个都可以算),先排序(O(NlogN)复杂度),然后顺序遍历一次即可去重

2. 元素个数相当多(多余1M),哈希去重,然后收集起来。

用户头像 回复 2012年 12月1日 @ Archer 上等兵 (494 威望)
提一个问题:

相关问题

0 投票
1 回复 36 阅读
+1 投票
1 回复 48 阅读
用户头像 提问 2012年 12月26日 @ Ares 上等兵 (353 威望)
0 投票
1 回复 42 阅读
+1 投票
1 回复 44 阅读
用户头像 提问 2012年 12月1日 @ hacker 上等兵 (362 威望)
0 投票
1 回复 46 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...