将两个数组中的所有字符串放入另一个数组[重复]

Posted

技术标签:

【中文标题】将两个数组中的所有字符串放入另一个数组[重复]【英文标题】:Putting all the strings that are in both of two arrays into another array [duplicate] 【发布时间】:2013-06-24 13:10:13 【问题描述】:

假设我有两个数组:

NSArray * first = @[@"One", @"Two", @"Three"," @Four"];
NSArray * second = @[@"Four", @"Five", @"Six", @"One"];

我想将两者中的对象放入另一个数组中:

NSArray * both = @[@"Four", @"One"]; 

有没有比遍历第一个项目的每个项目并检查其是否包含在第二个项目中更优雅的方法?

【问题讨论】:

【参考方案1】:

你基本上需要找到数组的交集所以你需要在这里使用set:

NSMutableSet *intersection = [NSMutableSet setWithArray:firstArray];
[intersection intersectSet:[NSSet setWithArray:secondArray]];

NSArray *resultArray = [intersection allObjects];

【讨论】:

【参考方案2】:

从您的 2 个数组中创建 2 个 NSMutableSet 实例。然后做:

NSArray *result = [[set1 intersectSet:set2] allObjects];

【讨论】:

【参考方案3】:

当然。只需为正确的任务使用正确的工具。别名,使用集合进行集合操作。

NSSet *first = [NSSet setWithArray:array1];
NSMutableSet *second = [NSMutableSet setWithArray:array2];
[second intersectSet:first];
NSArray *commonObjects = [second allObjects];

【讨论】:

以上是关于将两个数组中的所有字符串放入另一个数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章

从一个数组中删除代表另一个数组的重复数据

如何将char数组中的值与另一个char进行比较

拆分一个字符串并将其放入两个数组中

C:函数结束后丢失char**的内容[重复]

如何从字符串中删除所有非希伯来字符并将单词放入数组中?

php怎样把一个数组放入另一个数组的子数组里面