二维数组的语法详解
2026/8/6 7:29:08 网站建设 项目流程

二维数组

一、定义

int[][]array={{11,12,13,14,15},{21,22,23,24,25},{31,32,33,34,35}};

本质 : 数组里面存数组, int[ ][ ] ,每一个元素是一个一维数组

1. 初始化
// 方式一 : 静态初始化int[][]arr={{1,2},{3,4,5},{6}};// 简写intarr[][]={{1,2},{3,4,5},{6}};// 方式二 : 动态初始化int[][]arr=newint[3][2];// 全部默认值为 0// 方式三 : 只指定行数, 不指定列数int[][]arr=newint[3][];arr[0]=newint[2];arr[1]=newint[4];arr[2]=newint

2. 获取长度
array.length;//获取行数 : 3array[0].length;//获取第0行的列数 : 5array[1].length;//获取第1行的列数 : 5

3. 遍历二维数组
// 普通for循环// 外层 i, 内层 jfor(inti=0;i<array.length;i++){for(intj=0;j<array[0].length;j++){System.out.println(array[i][j]);}}// 外层 j, 内层 ifor(intj=0;j<array[0].length;j++){for(inti=0;i<array.length;i++){System.out.println(array[i][j]);}}//------------------------------------------------------// 增强forfor(int[]row:array){for(intnum:row){System.out.println(num);}}

4. 内存图

局部性原理(空间局部性)

  • cpu 读取内存(速度慢)数据后,会将其放入高速缓存(速度快)当中,如果后来的计算再用到此数据,再缓存中能读到的话,就不必读内存了
  • 缓存的最小存储单位是缓存行(cache line),一般64bytes,一次读取的数据少了不划算,因此最少读 64 bytes 填满一个缓存行,因此读入某个数据时也会读取其临近的数据,这就是所谓空间局部性

5. 普通for遍历的俩种方式对比
  1. 外层 j , 内层 i

    每次把一整行数据加载进缓存,但是只用到一个数据块,其余的数据还没有被用到的时候,再缓存空间不足时就被别的数据行覆盖了,还要再去访问内存,浪费太多时间了

  2. 外层 i , 内层 j

    每次把一整行数据加载进缓存,下一次还需要用到这一次加载进来的数据,大大减少了读取时间,提高了效率

🚨 提示
因此我们一般使用外层 i , 内层 j 的普通for遍历

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询