gpt4 book ai didi

iphone - 具有子对象的数组中唯一对象的算法?

转载 作者:行者123 更新时间:2023-12-01 19:25:11 24 4
gpt4 key购买 nike

我有一个数据类:

@interface Car : NSObject
{
Engine *_engine;
}
//...

与类(class):
@interface Engine : NSObject
{
NSInteger _power;
NSString *_name;
}
//...

还有一个数组:
NSArray *myArray = [ // a bunch of Car objects with Engines

我将如何制作一个包含基于引擎“功率”的所有独特项目的新数组?

例如:

0 带发动机的汽车(功率 = 20,名称 = “发动机一号”)

1 辆带发动机的汽车(功率 = 45,名称 = “发动机二”)

2 带发动机的汽车(功率 = 20,名称 = “发动机三”)

最终数组将是汽车对象 0 和 1

两个数据类都有访问器,例如:
- (NSInteger)power;

最佳答案

NSArray *cars = ...;
NSMutableDictionary *carsByUniqueEnginePowers = [NSMutableDictionary dictionary];
for (Car *car in cars) {
NSNumber *enginePower = [NSNumber numberWithInteger:car.engine.power];
[carsByUniqueEnginePowers setObject:car forKey:enginePower];
}
NSArray *carsWithUniqueEnginePowers = [carsByUniqueEnginePowers allValues];

将根据发动机功率选择最后一项。

要获得第一个替换行
[carsByUniqueEnginePowers setObject:car forKey:enginePower];

有了这个:
if (![carsByUniqueEnginePowers objectForKey:power]) {
[carsByUniqueEnginePowers setObject:car forKey:enginePower];
}

关于iphone - 具有子对象的数组中唯一对象的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8129903/

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