Java一维数组核心操作是遍历+比较/累加/交换;最值可一次遍历同步求得,平均值需防溢出与精度丢失,查找应提前终止,反转用双指针原地完成。

Java 一维数组操作的核心不在写法多炫,而在逻辑稳、边界清、可复用。真正实用的算法,比如求最值、算平均、找元素、反转顺序,都是围绕“遍历+比较/累加/交换”这三类动作展开的。
最大值与最小值:一次遍历搞定两个结果
别写两遍循环——最大值和最小值完全可以同步计算。初始化时用首元素作起点,避免假设默认值(比如用 Integer.MAX_VALUE 可能引发整型溢出或逻辑错乱)。
- 先检查数组是否为空或为 null,否则直接抛 NullPointerException 或 IllegalArgumentException
- 设 max = arr[0]、min = arr[0],从索引 1 开始循环比较
- 每轮更新 max 和 min,不依赖额外库或排序,时间复杂度 O(n),空间 O(1)
平均值计算:注意类型转换与精度陷阱
整型数组求平均容易丢精度。比如 int[] scores = {85, 90, 95},直接 sum / length 得到的是整数 90,而非 90.0。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
- 求和用 long 类型防溢出(尤其元素多、数值大时)
- 平均值转为 double:(double) sum / arr.length
- 若需保留小数位,用 String.format("%.2f", avg) 或 BigDecimal,但初学阶段优先确保逻辑正确性
查找与判断:提前终止比遍历到底更高效
找某个值是否存在,本质是线性搜索。一旦命中就 return true,不必等循环结束;没找到才返回 false。
立即学习“Java免费学习笔记(深入)”;
- 增强 for 循环足够简洁:for (int x : arr) { if (x == target) return true; }
- 需要返回下标时必须用普通 for:i 从 0 到 arr.length - 1,匹配即 return i
- 空数组或 null 要单独处理,否则空指针异常在所难免
数组反转:双指针交换,原地完成
反转不需要新建数组,靠头尾两个索引向中间靠拢,逐对交换即可。这是空间最优解。
- 设 left = 0,right = arr.length - 1
- while (left
- 奇数长度时中间元素不动,偶数长度时自然收束,逻辑干净无冗余


















