在Java中找到最大的价值

时间:2013-12-30 14:32:57

标签: java find compare

对于如下输入,可以使用Float.compare来查找数组中最大的浮点数吗?

Float[] v = {0.38118651972530804, 0.3580139606405057, 0.7358862700995704};
float max = -1;

for (int i = 0; i < v.length; i++)
    if (Float.compare(max,v[i]) > 0) max = v[i];

有更好的方法吗?或者可能存在一些精度错误?

4 个答案:

答案 0 :(得分:2)

我会使用一个集合并调用max()方法。请参阅:here

答案 1 :(得分:0)

如果数组中的所有值都小于-1,则可能会出错。最好将max初始化为v [0]。

并且,您的代码找到最小的元素。不是最大的元素。

Float[] v = {0.38118651972530804, 0.3580139606405057, 0.7358862700995704};
float max = v[0];

for (int i = 1; i < v.length; i++)
    if (Float.compare(max, v[i]) < 0) max = v[i];

答案 2 :(得分:0)

这个怎么样 -

float max = v[0]; // the first item in array

// Loop through all items starting the second one
for (int i = 1; i < v.length; i++)
{
     if (v[i] > max) // If current item is bigger, update max to current item
     {
      max = v[i];
     }
}

答案 3 :(得分:0)

一行怎么样:

Float max = Collections.max(Arrays.asList(v));