gpt4 book ai didi

java - 在从 ArrayList 返回两个对象中的变量之前,如何比较它们?

转载 作者:行者123 更新时间:2023-11-30 06:05:09 25 4
gpt4 key购买 nike

我有一个类,FlightDatabase,其中包含许多AirJourney对象,这些航空旅程对象具有以下详细信息:出发机场、目的地机场和里程数航类。

例如,一个 AirJourney 对象可能具有出发地:A、目的地:B 和里程:400。

以下字符串数组代表数据库中存在的每个 AirJourney 对象,第一个字母是出发地,第二个字母是目的地,第三个字母是航类的英里数。

"AB800"、"BC900"、"CD400"、"DE400"、"BF400"、"CE300"、"DE300"、"EB600"、"CE200"、"DC700"、"EB500"、 “FD200”

此字符串中有许多重复的航类:DE400DE300,然后是 CE300CE200 .

我需要能够从 FlightDatabase 返回 AirJourney 对象,并且忽略任何里程数较高的航类。

下面的方法允许使用由两个字母组成的字符串从数据库返回 AirJourney 对象,这两个字母将与对象中保存的出发地和目的地机场相匹配。但是,此方法将返回第一个匹配的对象,而不是最少的英里数。

public AirJourney getFlightDetailsFromAirportPairing(String airportPair)
{
for(AirJourney journey : database)
{
String journeyPair = journey.getOriginAirport() + journey.getDestinationAirport();
if(airportPair.equals(journeyPair))
{
return journey;
}
}

return new AirJourney(0, null, null);
}

例如,如果我调用 `getFlightDetailsFromAirportPairing("DE"),则将返回 DE400 航类,而我希望返回 DE300 航类并忽略 DE400 航类。

我不知道如何修改此方法,以便它返回里程数最低的航类。

最佳答案

也许可以使用类似的东西?

这个想法是存储看到的最低值,每当您看到具有较低值的东西时,您就存储 AirJourney 对象和距离。

public AirJourney getFlightDetailsFromAirportPairing(String airportPair){
double lowestDistance = Double.MAX_VALUE;
AirJourney lowestDistanceAirJourney = null;
for (AirJourney journey : database) {
String journeyPair = journey.getOriginAirport() + journey.getDestinationAirport();
if(airportPair.equals(journeyPair)) {
if (lowestDistanceAirJourney == null || journey.getMiles() < lowestDistance) {
lowestDistanceAirJourney = journey;
lowestDistance = journey.getMiles();
}
}
}
return lowestDistanceAirJourney;
}

关于java - 在从 ArrayList 返回两个对象中的变量之前,如何比较它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51500798/

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