我被困在2个或更多相同大小的列表根据值进行比较。一些背景:我正在尝试制作一个赛车应用程序,它可以跟踪你在各个扇区的圈数,然后提供理想的路线,这是在扇区记录的最低时间。数据放在hashmap中,键是lap,值是float数组。到目前为止,我已经尝试过这样做(在代码下,它是提供格式的数据)。我想知道是否有可能按位置比较数组中的值(例如,其他数组中的第一个位置与第一个位置,其他数组中的第二个位置与第二个位置等),因为我的存在缺陷-通过guava函数或其他更好的比较方法。谢谢你的帮助。
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。
暂无答案!
目前还没有任何答案,快来回答吧!