gpt4 book ai didi

ios - NSArray 的子数组的排序 NSIndexSet

转载 作者:行者123 更新时间:2023-11-28 21:33:16 24 4
gpt4 key购买 nike

假设我有 NSIndexSet 数组索引。我想根据 NSArrayNSIndexSet 进行排序。

所以,假设我们有数组:

array = @[1,4,3,8,6,2,9];

和索引集

indexSet :  (2,4,5,6)

所以这个索引的“子数组”将是

subArray = @[3,6,2,9]

所以我想要的是:

I have :
indexSet : (2,4,5,6)
array = @[1,4,3,8,6,2,9];
return indexSet : (5,2,4,6) --> this are sorted indexes of "sub array".

如何实现?

最佳答案

你无法实现你想要的。 NSIndexSet 不维护与索引本身的顺序分开的顺序。它始终按索引顺序排列。

您可以构建一个数字对象数组,将其视为索引。

NSArray* array = /* ... */;
NSMutableArray* indexes = [[NSMutableArray alloc] init];
[indexSet enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop){
[indexes addObject:@(idx)];
}];
[indexes sortUsingComparator:^NSComparisonResult(NSNumber* obj1, NSNumber* obj2){
NSUInteger index1 = obj1.unsignedIntegerValue;
NSUInteger index2 = obj2.unsignedIntegerValue;
id element1 = array[index1];
id element2 = array[index2];
return [element1 compare:element2];
}];

关于ios - NSArray 的子数组的排序 NSIndexSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34981171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com