【问题标题】:How to tell how may unique elements there are an NSArray如何判断 NSArray 中的唯一元素有多少
【发布时间】:2010-07-08 12:48:21
【问题描述】:

我有一个 NSString 数组(实际上是一个可变数组),我想知道数组中有多少个唯一元素。

例如,假设数组由以下部分组成:

Orange, Lemon, Lemon, Orange, Lemon

那么只有两个独特的元素(橙色和柠檬)。而这个数组:

Paul, Steve, John, Harry, Paul, John

..有四个独特的独特元素。

我如何发现这个号码?

【问题讨论】:

    标签: iphone objective-c nsmutablearray nsarray


    【解决方案1】:

    NSSet 不能包含相等的对象,所以以下工作:

    NSUInteger count = [[NSSet setWithArray:array] count];
    

    【讨论】:

      【解决方案2】:

      对数组进行线性扫描,并将每个元素添加到 NSMutableSet。 最后统计一下 NSMutableSet 中的元素个数。 NSMutableSet 不允许添加重复元素。

      这比对数组排序更快,然后在每次发现新元素时执行线性扫描递增变量。

      编辑:Objective-C 中的实现由 JoostK 提供。

      【讨论】:

        【解决方案3】:
        NSUInteger count = [[array valueForKeyPath:@"@distinctUnionOfObjects.self"] count];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-06
          • 1970-01-01
          • 1970-01-01
          • 2014-07-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多