带流的最小值int数组

时间:2017-07-31 08:29:37

标签: java java-8 java-stream

我正在尝试使用流来获取int数组的最小值,我正在尝试执行以下操作:

$head = $domx->evaluate("string(./head[1])",$entry);

我的问题是最好的方法是什么?

PS:有一个类似的问题,但这里没有sterams Finding the max/min value in an array of primitives using Java

4 个答案:

答案 0 :(得分:5)

你过于复杂了。

IntStream.of(args).min().getAsInt()

注意:如果数组为空,这将抛出NoSuchElementException,这可能是一个理想的结果。

答案 1 :(得分:2)

我认为你使用了太多的流。

它会这样做:

int theMin = Arrays.stream(args).min().getAsInt();

由于方法参数 args 已经是根据方法签名的整数数组:

public static int smallestInt(int[] args) {

答案 2 :(得分:1)

您可以使用,更容易理解和正确

public static int smallestInt(int[] args) {
     return Arrays.stream(args).min().getAsInt();
}

答案 3 :(得分:0)

其他大多数人都提供了很好的解决方案,但他们没有涵盖没有最小价值的情况,这也应该包括这个案例:

public static int smallest(int[] ints){
    return Arrays.stream(ints).min().orElse(Integer.MIN_VALUE);
}