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

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

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

  1. public ArrayList<Float> idealLine(Map<Integer, List<Float>> durations) {
  2. ArrayList<Float> idealLap = new ArrayList<Float>();
  3. for(int i = 0; i < durations.size(); i++) {
  4. if(durations.size() < (i + 1)) {
  5. break;
  6. }
  7. else {
  8. ArrayList<Float> values = new ArrayList<Float>();
  9. for(int key : durations.keySet()) {
  10. values.add(durations.get(key).get(i));
  11. }
  12. int index = values.indexOf(Collections.min(values));
  13. idealLap.add(values.get(index));
  14. }
  15. }
  16. return idealLap;
  17. }
  18. // 1/[18.0, 18.0, 13.0, 5.0, 18.0]
  19. // 2/[18.0, 18.0, 13.0, 5.0, 18.0]
  20. // 3/[19.0, 27.0, 22.0, 8.0, 31.0]
  21. // 4/[21.0, 22.0, 15.0, 6.0, 21.0]

我希望的首选输出是每列的最低值,即18.0、18.0、13.0、5.0、18.0。

暂无答案!

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

相关问题