【问题标题】:Find duplicates in NSArray在 NSArray 中查找重复项
【发布时间】:2013-07-17 04:30:31
【问题描述】:

假设您有一个 NSArray,其中有重复的 @[1,2,3,1,1,2,4,5,6]

查找所有重复项;这可以是伪代码。这更像是一个算法问题,而不是 Foundation 框架(不使用 NSSet)问题。

【问题讨论】:

  • 看看 NSCountedSet。您可以从数组中创建其中一个,然后循环查看哪些计数大于 1。
  • 我从来不知道 NSArray 可以直接存储整数值。 :O

标签: cocoa-touch nsarray


【解决方案1】:

如@Lithu 所述,使用NSCountedSet ,请参见以下代码。

NSArray *arr = [[NSArray alloc]initWithObjects:@(1),@(1),@(2), @(1),nil];
NSCountedSet *cs = [[NSCountedSet alloc] initWithArray:arr];
NSLog(@"object count greater than 1 are");
for(NSNumber *num in cs)
{
    if([cs countForObject:num]>1)
    NSLog(@"%@",num);
}

【讨论】:

    【解决方案2】:

    使用NSCountedSet 并且只打印为countForObject: 方法返回数字>1 的元素

    更多信息请参考this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-21
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多