我在Java中有一个double[] foo
。
是否有用于提取此数组中最小值的库函数?我知道我可以构建一个,但如果库函数可用,这不是一个好习惯。 java.util.Arrays
中没有任何内容。
(在C ++中我们有std::min_element
等等,甚至是C ++ 11中的一个新函数,可以同时获得最小值和最大值!)
答案 0 :(得分:6)
假设Java 8:
double[] arr = { 1.0, 2.0 };
double min = DoubleStream.of(arr)
.min()
.getAsDouble();
答案 1 :(得分:4)
好吧,Collections类有这样的方法。
你可以写
Double[] arr = {0.5,0.7};
System.out.println("min = " + Collections.min(Arrays.asList(arr)));
或者缩短时间:
System.out.println("min = " + Collections.min(Arrays.asList(-67,-89,64,34)));
答案 2 :(得分:1)
您可以使用ArrayUtils.toObject将double[]
转换为Double[]
然后使用Arrays.asList将数组转换为列表,并找到Collections.min的最小值。
double[] d = new double[] {1, 2, 3};
Double minValue = Collections.min(Arrays.asList(ArrayUtils.toObject(d)));
System.out.println(minValue);
答案 3 :(得分:1)
您可以使用com.google.common.primitives.Doubles
double[] arr = { 4.3, 4.9 };
double min = Doubles.min(arr);
//OR
//double min = Doubles.min(4.3, 4.9);