【问题标题】:how to get minimum sum in the list of double values which inside the list如何在列表内的双精度值列表中获得最小总和
【发布时间】:2018-09-16 10:38:01
【问题描述】:

我有列表[[1.2], [2.0], [20.0], [10.0], [50.0], [0.5, 50.0], [0.5, 20.0], [0.5, 10.0], [0.5, 1.2], [0.5, 0.5], [0.5, 2.0]]

我想在 java 程序中获得内部列表的最小总和作为输出(不使用循环)。 输出应该是:[0.5, 0.5]

【问题讨论】:

  • 为什么要避免循环?

标签: java collections java-stream


【解决方案1】:

你可以使用Arrays.stream():

double[][] values = {{1.2}, {2.0}, ...};
Arrays.stream(values).min(Comparator.comparingDouble(t -> Arrays.stream(t).sum())).get()

Stream<double[][]>.min() 函数返回一个Optional<double[]>。如果值为空,则此可选项将为空。在调用Optional<double[]>.get() 之前,您需要使用Optional<double[]>.isPresent() 检查是否存在最小值。

【讨论】:

  • 只是一个旁注,在声明数组时,您可以完全省略new double[][]new double[]
  • @Lino Thx :),我完全忘记了这一点。我以这种方式更新了我的答案。
猜你喜欢
  • 2019-01-14
  • 2016-09-22
  • 2018-05-15
  • 2020-09-22
  • 2022-10-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-15
  • 2018-08-03
相关资源
最近更新 更多