【问题标题】:How to perform union set for multiple sets in Objective C如何在Objective C中为多个集合执行联合集
【发布时间】:2018-01-24 05:01:42
【问题描述】:

我有一个NSSet 实例数组,如下面的代码所述。

NSArray *a = @[@"1", @"2", @"3", @"4", @"5"];
NSArray *b = @[@"1", @"2", @"3", @"6", @"7"];
NSArray *c = @[@"1", @"7", @"8", @"9", @"5"];
NSArray *d = @[@"1", @"6", @"7", @"8", @"9"]; ... upto N number of arrays.

通过使用[NSSet setWithArray:] 方法从数组创建集合,在NSSet 的N 个实例中定义了所有N 个数组。所有 N 个集合实例都存储在一个数组 X 中。现在,我需要对所有 N 个集合执行联合集合操作。我怎样才能做到这一点?

【问题讨论】:

    标签: objective-c nsmutablearray nsarray nsset nsmutableset


    【解决方案1】:

    有不同的方法。最简单的方法是遍历(集合的)数组并简单地将新元素添加到集合中。

    NSMutableSet *unionSet = [NSMutableSet new];
    for( NSSet *singleSet in X) // X is an array of sets as mentioned in the Q
    {
      [unionSet unionSet:singleSet];
    }
    

    但是,在统一之前无需创建单个中间集,因为您也可以使用 -addObjectsFromArray: (NSMutableSet) 将数组本身添加到 unionSet。

    作为提示,我想在您的示例中提及(可能与实际单词不同),使用简单的数字可能更容易从一开始就使用 NSIndexSetNSMutableIndexSet

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多