ios - 在 objective-c 中追加数组并删除重复项而不更改顺序

标签 ios sorting duplicates nsarray

假设我有三个数组。

NSArray *array1 = @[@"4",@"3",@"2"];
NSArray *array2 = @[@"2",@"1"];
NSArray *array3 = @[@"3",@"1",@"5",@"2"];

我想附加这些数组。条件是:

  • 顺序不应改变。也就是说,Array1 的顺序比 Array2 有更高的优先级。
  • 应该删除重复值(当附加 Array2 和 Array1 时,我想从 Array2 中删除重复值)

所以我希望这样的结果:

@[@"4",@"3",@"2",@"1",@"5"];

问题:

  • 我是否应该迭代每个值来构建预期结果?有什么简单的方法可以实现吗?

谢谢

最佳答案

您可以使用 NSMutableOrderedSet 来实现这一点:

NSMutableOrderedSet *mSet = [NSMutableOrderedSet new];
[mSet addObjectsFromArray:array1];
[mSet addObjectsFromArray:array2];
[mSet addObjectsFromArray:array3];
NSArray *array = [mSet array];

关于ios - 在 objective-c 中追加数组并删除重复项而不更改顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37059910/

相关文章:

android - cocos2d-x 如何让部分图层在移动到屏幕的某个部分时消失

ios - IOS7和 "Terminated due to Memory Pressure"中的内存管理

javascript - 如何停止 Bootstrap-3-Typeahead 下拉列表按排序顺序显示元素

R - 添加具有几乎相同名称的列并使用正确的列名称保存

MySQL删除子查询的所有结果

ios - 限制删除 UITextField

iphone - iOS:如何在设置更改时隐藏 UITextField?

c++以通用方式对对象类数组进行排序

java - 使用比较器对对象进行 ArrayList 排序

java - 浏览多个列表以查找相等的对象