Java 公交线路选项排序的逻辑/算法
我正在尝试实现下面的公交线路排序算法 客户搜索从A到B的公交车并选择首选承运人。(例如:乘坐灰狗从达拉斯到芝加哥) 假设有一个web服务返回从a到B的公交路线选项列表。每个公交选项对象都有一个段列表,其中承运人是属性之一,以及出发时间、到达时间等 我需要按以下顺序对结果进行排序Java 公交线路选项排序的逻辑/算法,java,algorithm,Java,Algorithm,我正在尝试实现下面的公交线路排序算法 客户搜索从A到B的公交车并选择首选承运人。(例如:乘坐灰狗从达拉斯到芝加哥) 假设有一个web服务返回从a到B的公交路线选项列表。每个公交选项对象都有一个段列表,其中承运人是属性之一,以及出发时间、到达时间等 我需要按以下顺序对结果进行排序 首先在首选载货公司显示A至B的直达巴士。(每组内按最早到达时间排序) 在首选载体上连接从A到B的总线 从A站连接到中间站的非首选载波的首选载波上的总线 非首选运营商上的直达巴士 从中间站连接非首选载波,然后从中间站连接首
ORG DEST CARRIER DEPART ARRIVAL
一,。达拉斯芝加哥灰狗上午6点晚上11点
这是正确和最佳的方法吗?如果您认为排序逻辑更好,请告知如果至少有一个承运人是非首选承运人,您不能将isPreferredCarrier标志设置为false,因为在这种情况下,您不能设置3。因此,您应该保留每个段的标志:
if (routeOption.getSegments.size()==1 &&
routeOption.getSegments[0].isPreferredCarrier())
Add to Set 1;
else if (routeOption.getSegments.size()==2 &&
routeOption.getSegments[0].isPreferredCarrier() &&
routeOption.getSegments[1].isPreferredCarrier())
Add to Set 2;
else if (routeOption.getSegments.size()==2 &&
routeOption.getSegments[0].isPreferredCarrier())
Add to set 3;
else ...
你到底想问什么?我没有看到一个明确的问题,这将阻止很多人回答。
if (routeOption.getSegments.size()==1 &&
routeOption.getSegments[0].isPreferredCarrier())
Add to Set 1;
else if (routeOption.getSegments.size()==2 &&
routeOption.getSegments[0].isPreferredCarrier() &&
routeOption.getSegments[1].isPreferredCarrier())
Add to Set 2;
else if (routeOption.getSegments.size()==2 &&
routeOption.getSegments[0].isPreferredCarrier())
Add to set 3;
else ...