当前位置: 首页 > news >正文

Java数组工具类实战:设计不可实例化的静态工具类

实现一个工具类MathUtils满足以下要求1. 所有方法均为静态且该类不能从外部实例化提示使用私有构造器。2. 提供三个静态方法-maxArray(int[] arr)返回较大值-minArray(int[] arr)返回较小值-sumArray(int[] arr)返回数组元素之和。输入第一行为整数 n数组长度第二行为 n 个整数数组元素第三行为一个操作指令max、min或sum。对于max和min输出数组中的最大值或最小值对于sum输出数组元素和。【样例输入】5 3 1 4 1 5 max【样例输出】5完整代码如下import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc new Scanner(System.in); int n sc.nextInt(); int[] arr new int[n]; for (int i 0; in; i){ arr[i]sc.nextInt(); } String op sc.next(); int re; if (op.equals(max)){ re MathUtils.maxArray(arr); }else if (op.equals(min)){ re MathUtils.minArray(arr); }else if (op.equals(sum)){ re MathUtils.sumArray(arr); }else{ re 0; } System.out.println(re); } } class MathUtils{ private MathUtils(){ } public static int maxArray(int[] arr){ int max arr[0]; for (int i 1; i arr.length; i){ if (arr[i] max){ max arr[i]; } } return max; } public static int minArray(int[] arr){ int min arr[0]; for (int i 1; i arr.length; i){ if (arr[i] min){ min arr[i]; } } return min; } public static int sumArray(int[] arr){ int sum arr[0]; for (int i 1; i arr.length; i){ sum sum arr[i]; } return sum; } }运行测试如下代码解释方法逐行分析从代码的第一行开始逐步阅读每一行代码的功能。理解变量声明、函数定义、循环结构等基本元素的作用。功能模块划分将代码划分为若干功能模块如输入处理、核心逻辑、输出结果等部分。分析每个模块的输入输出关系。变量跟踪记录代码中所有变量的变化过程特别是在循环和条件语句中变量的值如何被修改。执行流程绘制代码的执行流程图明确不同条件下的执行路径和可能的分支情况。调试输出在关键位置添加打印语句输出中间结果帮助理解代码的实际执行过程。代码示例分析def calculate_average(numbers): total 0 count 0 for num in numbers: total num count 1 return total / count if count ! 0 else 0函数定义calculate_average函数接收一个numbers参数表示要计算平均值的数字列表。变量初始化total初始化为0用于累加所有数字的和count初始化为0用于记录数字的个数。循环结构for循环遍历numbers列表中的每个元素将当前数字加到total中同时count递增1。返回结果使用条件表达式处理除零情况当count不为0时返回平均值否则返回0。数学公式表示平均值的计算公式可以表示为其中(x_i) 表示列表中的第i个数字(n) 表示数字的总个数(\sum) 表示求和运算常见问题排查空列表处理代码已通过条件表达式处理了空列表情况避免除零错误。非数字输入当前实现假设输入都是数字类型实际应用中可能需要添加类型检查。精度问题对于大量数据求和可能导致精度损失可考虑使用更高精度的数值类型。性能优化对于极大列表Python的内置sum函数可能更高效但会失去计数验证的灵活性。
http://www.zskr.cn/news/1386116.html

相关文章:

  • Agent开发面试通关攻略:吃透稳拿offer
  • 平台对比|多因子检测两大主流商业化仪器平台优劣与适配场景分析
  • AArch64内存管理:MAIR2_EL1寄存器详解与实践
  • 告别FTP龟速:用NTFS-3G在CentOS7上直连移动硬盘拷贝200G大文件
  • 选对名师少走弯路,感恩戴氏的马晓辉老师悉心教导
  • 你的bWAPP靶场网络通了吗?VMware NAT模式配置与常见访问故障排查指南
  • ARM SPE Profiling Buffer架构与性能优化实践
  • Python自动化实战:定时抓取通达信财务与收盘数据,构建你的本地量化数据库
  • 手把手教你用fetch_20newsgroups数据集训练第一个文本分类模型(附完整代码与常见错误排查)
  • 2026年近期温州专业的语音智能开关贴牌商选哪家?聚焦温州罗邦智能开关的深度剖析 - 2026年企业推荐榜
  • [智能体-76]:用组建公司类比 搭建 AI 智能体(全流程 + 组件一一对应,通俗好懂、适合讲解 / 文档使用)
  • Ansys | 基于热效应的形状记忆合金脊柱间隔器仿真分析
  • Python开发者一分钟搞定Taotoken接入,OpenAI兼容协议快速上手
  • ARM架构PMU性能监控单元详解与实践指南
  • 2026年5月,杭州谈判与调解法律服务如何高效对接?深度解析六和律师事务所王旭东团队 - 2026年企业推荐榜
  • OpenClaw 连接阿里云百炼图文教程
  • 使用冰狐js实现自动化脚本
  • 2026年红帽Red Hat最新— 个人考试预约流程
  • 铜排浸漆技术要点解析及合规供应方选型参考:浸粉铜排、软连接定制、软铜排定制、铜排浸粉、铜排软连接、铜箔软连接、定制软连接选择指南 - 优质品牌商家
  • 用 OpenCLAW 重写 CUDA 内核:从传统 CUDA 到跨平台异构计算的迁移实践
  • 邯郸二级建造师考试时间安排!
  • DeepSeek漏洞扫描辅助失效的终极原因:不是模型问题,而是这1个被禁用的Linux内核参数
  • 传统早起为荣熬夜为耻,编写作息适配调节程序,不强行统一作息,匹配个人体质定制作息。
  • 2026年5月正规的哈尔滨耐火电缆厂家有哪些厂家推荐榜,NH-YJV、NH-BV、NH-KVV、WDZN-YJY型号厂家选择指南 - 海棠依旧大
  • 如何快速掌握开源UE资产编辑器:UAssetGUI完整配置与实战指南
  • 非接触电梯控制系统:基于Arduino与语音识别的低成本改造方案
  • mac本地HomeBrew安装redis集群
  • 前端可读性=可交付性?斯坦福人机交互实验室联合验证的Lovable代码熵值计算公式(含VS Code插件)
  • 别再手动转模型了!用ONNX打通PyTorch到TensorRT的部署流水线(附完整代码)
  • 杜教筛学习笔记