【发布时间】:2021-07-05 17:04:36
【问题描述】:
我坚持根据值比较 2 个或更多相同尺寸的列表。一些背景:我正在尝试制作一个赛车应用程序,通过扇区跟踪您的圈数,然后提供理想的线路,这是在扇区记录的最低时间。数据放在哈希图中,键是圈数,值是浮点数数组。到目前为止,我已经尝试过这样做(在代码下它是提供格式的数据)。我想知道是否可以按位置比较数组中的值(例如,第一个位置与其他数组中的第一个位置,第二个位置与其他数组中的第二个位置等),因为我的有缺陷 - 通过番石榴功能,或任何其他更好的比较方式。感谢您的帮助。
public ArrayList<Float> idealLine(Map<Integer, List<Float>> durations) {
ArrayList<Float> idealLap = new ArrayList<Float>();
for(int i = 0; i < durations.size(); i++) {
if(durations.size() < (i + 1)) {
break;
}
else {
ArrayList<Float> values = new ArrayList<Float>();
for(int key : durations.keySet()) {
values.add(durations.get(key).get(i));
}
int index = values.indexOf(Collections.min(values));
idealLap.add(values.get(index));
}
}
return idealLap;
}
// 1/[18.0, 18.0, 13.0, 5.0, 18.0]
// 2/[18.0, 18.0, 13.0, 5.0, 18.0]
// 3/[19.0, 27.0, 22.0, 8.0, 31.0]
// 4/[21.0, 22.0, 15.0, 6.0, 21.0]
我想要的首选输出是每列中的最小值,即 18.0、18.0、13.0、5.0、18.0。
【问题讨论】:
-
欢迎来到 SO。请说明您期望的比较结果(可能提供失败的测试用例)。
-
您好,谢谢。我的预期结果是从每一列中获取最低值,因此它应该是这样的:18.0、18.0、13.0、5.0、18.0。目前,我已经做到了如上所示,它只提供与圈数一样多的值,这是不正确的。