Java开发中如何获取double类型数组中的最大值
解决方案
你可以通过以下几种常用方式获取weightList数组中的最大double值,代码都可以直接放在你定义weightList数组之后的位置使用:
方法1:手动遍历实现(兼容性最好,无额外依赖)
不需要导入任何额外工具包,所有Java版本都支持,性能开销最低,最适配你当前的场景:
// 初始化最大值为数组第一个元素 double maxWeight = weightList[0]; // 遍历数组剩余元素逐个对比 for (int i = 1; i < weightList.length; i++) { if (weightList[i] > maxWeight) { maxWeight = weightList[i]; } } // 可以直接使用maxWeight做后续的阈值对比逻辑 System.out.println("最高可购买重量为:" + maxWeight + "克");
方法2:Java 8+ Stream实现(写法简洁)
如果你使用的是Java 8及以上版本,可以用Stream一行代码完成计算:
// 需在文件顶部导入java.util.Arrays包 double maxWeight = Arrays.stream(weightList).max().getAsDouble();
方法3:Collections工具类实现
需要先将基础类型数组转为包装类集合:
// 需在文件顶部导入java.util.Arrays、java.util.Collections两个包 Double[] weightListWrapper = {gramWeight, eighthWeight, quarterWeight, halfWeight, ounceWeight}; double maxWeight = Collections.max(Arrays.asList(weightListWrapper));
优化提示:你当前代码中
eightPerGram是int类型数组,做单价计算时建议先转成double类型再做除法,避免整数除法带来的精度偏差,比如可将eightPerGram[0]/1修改为(double)eightPerGram[0]/1。
内容的提问来源于stack exchange,提问作者ntg_908
相关产品推荐
相关产品推荐

