gpt4 book ai didi

ios - 如何在iOS中使用字典对数组进行排序

转载 作者:行者123 更新时间:2023-12-01 18:59:28 26 4
gpt4 key购买 nike

我以这种方式有一个数组。

rows1 (
"Adam Harris",
"Devraj Singh",
"Devraj Singh",
"Er Devraj Gurjar",
"Ghh HHS",
"Mark Json",
"Ninehertz India",
"Ninehertz India",
"Test User",
"Test Test",
"Yatin TFT"
)

我用下面的代码
NSArray *rows = ...;
NSMutableDictionary *map = [NSMutableDictionary dictionary];
for (NSString *value in rows) {
NSString *firstLetter = [value substringToIndex:1];
if (!map[firstLetter]) {
map[firstLetter] = @[];
}
NSMutableArray *values = [map[firstLetter] mutableCopy];
[values addObject:value];
map[firstLetter] = values;
}
NSArray *finalRows = [map allValues];

按字母顺序对数组排序。排序有两个条件。1)所有以相同字母开头的单词都应分组,这是我实现的,如下面的数组所示。现在我的问题是我想按字母顺序排列所有分组的项目。 2.)现在,数组的所有分组元素都应按字母顺序排序。以下是我所取得的成就。
 (
(
"Devraj Singh",
"Devraj Singh"
),
(
"Mark Json"
),
(
"Er Devraj Gurjar"
),
(
"Adam Harris"
),
(
"Ninehertz India",
"Ninehertz India"
),
(
"Test User",
"Test Test"
),
(
"Ghh HHS"
),
(
"Yatin TFT"
)
)

我想做的如下
(
(
"A1",
"A2"
),
(
"B1"
),
(
"C1"
),
(
"D1"
),
(
"E1",
"E2",
"E3"
),
(
"F1",
"F2"
),
(
"G1"
),
(
"H1"
)
)

最佳答案

最简单的解决方案是将最后一行更改为:

NSArray *finalRows = [[map allValues] sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NSString *letter1 = [obj1[0] substringToIndex:1];
NSString *letter2 = [obj2[0] substringToIndex:1];
return [letter1 compare:letter2];
}];

这不是最有效的解决方案,但可以。

关于ios - 如何在iOS中使用字典对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23761466/

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