我有一个二维数组如下
NSArray *cities = [NSArray arrayWithObjects:@"New Delhi",@"Karachi",@"Dhaka",@"Columbu", nil];
NSArray *distance = [NSArray arrayWithObjects:@"500",@"1400",@"1200",@"2800", nil];
NSMutableArray *details= [[NSMutableArray alloc]initWithCapacity:cities.count];
[details addObject:cities];
[details addObject:distance];
现在,details
数组看起来像
(
(
"New Delhi",
Karachi,
Dhaka,
Columbu
),
(
500,
1400,
1200,
2800
)
)
我需要按升序w.r.t distance
数组对数组进行排序
即,
(
(
"New Delhi",
Dhaka,
Karachi,
Columbu
),
(
500,
1200,
1400,
2800
)
)
怎么做?
我还需要按字母顺序w.r.t cities
数组对整个数组进行排序。
我尝试使用sortUsingComparator
,但无法完全解决问题。
任何帮助都将不胜感激。
答案 0 :(得分:1)
结构复杂。制作包含city
和name
的课程distance
。然后添加此类的对象。然后,您可以使用city.distance
进行排序。
答案 1 :(得分:1)
self.arrayForRows = [[NSMutableArray alloc]init];
NSMutableArray *arrayForCities = [[NSMutableArray alloc]initWithObjects:@"Mumbai",@"Vizag",@"Hyderabad",@"Ahemdabad",@"Secunderabad", nil];
NSMutableArray *arrayForDistance = [[NSMutableArray alloc]initWithObjects:@"200",@"320",@"32",@"450",@"14", nil];
for (int i=0; i<arrayForCities.count; i++)
{
NSMutableDictionary *tempDicts = [[NSMutableDictionary alloc]init];
[tempDicts setObject:[arrayForCities objectAtIndex:i] forKey:@"names"];
[tempDicts setObject:[NSNumber numberWithInt:[[arrayForDistance objectAtIndex:i] intValue]] forKey:@"distance"];
[self.arrayForRows addObject:tempDicts];
}
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"distance" ascending:YES];
[self.arrayForRows sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];