二维数组行遍历是Java处理表格型数据的基础手段,外层循环控制行、内层循环控制列,arr[i]表示第i行一维数组,arri为具体元素,稳定遍历框架是关联统计准确与可维护的前提。

二维数组行遍历是 Java 中处理表格型数据最基础也最常用的手段,尤其在做关联统计(如按行聚合、跨列匹配、条件计数等)时,清晰的遍历逻辑直接决定统计结果的准确性与可维护性。
明确行遍历结构:外层循环控制行,内层循环控制列
二维数组本质上是“数组的数组”,arr[i] 表示第 i 行的一维数组,arr[i][j] 才是具体元素。做关联统计前,必须先稳定遍历框架:
- 用 for (int i = 0; i 遍历每一行
- 每行内用 for (int j = 0; j 访问该行所有列
- 避免硬编码列数(如
j ),防止某行长度不一致时报 <code>ArrayIndexOutOfBoundsException
按行提取关键字段,构建关联键进行分组统计
常见场景:二维数组每行代表一条记录(如 [用户ID, 商品ID, 金额, 时间]),需按用户ID统计总消费额。关键在于从每行中提取用于关联的字段(如用户ID),再累加对应数值:
- 定义 Map<String, Double> userTotal = new HashMap<>();
- 遍历时取 String uid = arr[i][0]; double amount = Double.parseDouble(arr[i][2]);
- 执行 userTotal.merge(uid, amount, Double::sum); 完成自动累加
- 若需多条件关联(如用户+商品组合),可用 String key = uid + "-" + arr[i][1];
利用行内逻辑判断实现条件关联统计
不是所有统计都靠简单累加。常需结合行内多个字段做判断,例如:“统计每个用户购买电子类商品(类别列值为 'ELEC')的订单数”:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
立即学习“Java免费学习笔记(深入)”;
- 遍历中先检查当前行是否满足条件:if ("ELEC".equals(arr[i][3]))
- 再提取关联字段:String uid = arr[i][0];
- 用 Map<String, Integer> countMap 记录,满足条件时 countMap.merge(uid, 1, Integer::sum)
- 注意字符串比较用 equals(),避免
==引发空指针或误判
规避常见陷阱:空行、类型转换、索引越界
真实数据常含脏数据,仅靠标准遍历不够,必须前置校验:
- 跳过空行:if (arr[i] == null) continue;
- 校验列数充足:if (arr[i].length (假设至少需4列)
- 数值列安全转换:Double.parseDouble(arr[i][2]) 改为 safeParseDouble(arr[i][2], 0.0),封装异常捕获逻辑
- 避免反复调用 arr[i].length,可在进入内层循环前缓存:int cols = arr[i].length;
行遍历本身不复杂,但把“取哪几列”“怎么关联”“如何容错”想清楚,才能让统计结果真正可信。写完记得用几组典型数据(含空行、缺列、非法数字)快速验证逻辑闭环。

















