質問

Simple question: will the following code work for finding the minimum value in an array of doubles (assume at least one value exists):

double[] values = ...

double currentMin = Double.POSITIVE_INFINITY;

for(int i = 0; i < values.length; i++) {
    if(values[i] < currentMin) {
        currentMin = values[i];
    }
}

return currentMin;

The crux of the question is whether POSITIVE_INFINITY will behave as expected when compared to other (real) double values, as well as potential infinities themselves.

役に立ちましたか?

解決

It is safe to use Double.POSITIVE_INFINITY. From the specification

All values other than NaN are ordered, with negative infinity less than all finite values, and positive infinity greater than all finite values.

他のヒント

Just set the minimum to the first element of the array (values[0) since you assume that at-least one value exists. If there is only one element, it must be the minimum, and otherwise, it will be updated accordingly.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top