java - 在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_far
as开始double
,然后强制转换toint
中的每个,然后将其转换回以返回?nums
double
int
这似乎很多余,不确定是否有更好的方法来做到这一点?
解决方案
你可以使用Integer.MAX_VALUE
这个例子。不需要无穷大。毕竟,最小值不能高于Integer.MAX_VALUE
。
int min_so_far = Integer.MAX_VALUE;
推荐阅读
- javascript - Redux Web 扩展 - 未捕获的 TypeError:传播不可迭代实例的无效尝试
- c# - 日期和十进制验证 ASP.NET Core
- python-3.x - Python kmeans 值错误
- java - 我可以在 IntelliJ 中使用 webjars 而不构建项目吗?
- html - CSS Image Sprites 在 IE 11 中不工作,但在 chrome 中工作正常
- performance-testing - 无法在 Loadrunner 中记录事务时间
- git - GitHub 上的 WxWidgets 存储库内容
- c# - 如何使用 C# winform 在特定时间打开新表单
- ios - 如何根据设备屏幕objective-c设置UITableViewCell高度
- python - Python 单选题