在 objective c 中追加数组并删除重复项而不更改顺序
Append arrays and remove duplicates without order change in objective c
假设我有三个数组。
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];
假设我有三个数组。
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];