首页 > 解决方案 > 在java中使用Infinity避免双重类型的最佳方法是什么?

问题描述

如果我想有一个Integer我想初始化为无穷大的目标数字,我是否被迫使用Double类型开头?

Integer min_val(List<Integer> nums) {

    double min_so_far = Double.POSITIVE_INFINITY;

    for (Integer i : nums) {
        if (i < min_so_far) {
            min_so_far = (double) i;
        }
    }
    return (int) min_so_far;
}

例如,min上面的这个函数,我正在寻找 a 中的最小整数List<Integer>。我必须从min_so_faras开始double,然后强制转换toint中的每个,然后将其转换回以返回?numsdoubleint

这似乎很多余,不确定是否有更好的方法来做到这一点?

标签: javaintegerdouble

解决方案


你可以使用Integer.MAX_VALUE这个例子。不需要无穷大。毕竟,最小值不能高于Integer.MAX_VALUE

int min_so_far = Integer.MAX_VALUE;

推荐阅读