数组的最小元素

时间:2014-10-23 12:11:49

标签: java arrays

我在Java中有一个double[] foo

是否有用于提取此数组中最小值的库函数?我知道我可以构建一个,但如果库函数可用,这不是一个好习惯。 java.util.Arrays中没有任何内容。

(在C ++中我们有std::min_element等等,甚至是C ++ 11中的一个新函数,可以同时获得最小值和最大值!)

4 个答案:

答案 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.toObjectdouble[]转换为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);