使用lambda函数在多个列表中按值进行比较

7xzttuei  于 2021-08-25  发布在  Java
关注(0)|答案(0)|浏览(227)

我被困在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。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题