二维数组
所谓二维数组, 可以简单的理解为是一种 "特殊" 的一维数组, 它的每个数组空间中保存的是一个一维数组.
那么如何使用二维数组呢, 步骤如下:
声明数组并分配空间
数据类型 [][] 数组名 = new 数据类型 [行的个数][列的个数];
或者分为两步:
数据类型 [][] 数组名;
数组名 = new 数据类型 [行的个数] [列的个数];
具体到实际例子:
- // 定义一个两行三列的二维数组
- int[][] num=new int[2][3];
赋值
二维数组的赋值, 和一维数组类似, 可以通过下标来逐个赋值, 注意索引从 0 开始
数组名 [行的索引] [列的索引] = 值;
也可以在声明数组的同时为其赋值
数据类型 [][] 数組名 ={ {值 1, 值 2...}, {值 11, 值 22...}, {值 21, 值 22...} };
具体到实际的例子:
- // 给第 1 行第 1 列的元素赋值
- num[0][0]=12;
处理数组
二维数组的访问和输出同一维数组一样, 只是多了一个下标而已. 在循环输出时, 需要里面再内嵌一个循环, 即使用二重循环来输出二维数组中的每一个元素. 如:
- package cn.mtianyan;
- public class ArrayTwo {
- public static void main(String[] args) {
- // 定义一个两行三列的二维数组并赋值
- int[][] twoArray = {{1,2,3},{4,5,6}};
- for (int i=0;i<twoArray.length;i++){
- // 每行的元素
- for (int j=0;j<twoArray[i].length;j++){
- System.out.print(twoArray[i][j]);
- }
- System.out.println();
- }
- }
- }
运行结果:
需要了解的: 在定义二维数组时也可以只指定行的个数, 然后再为每一行分别指定列的个数. 如果每行的列数不同, 则创建的是不规则的二维数组, 如下所示:
- package cn.mtianyan;
- public class ArrayTwoIrregular {
- public static void main(String[] args) {
- int[][] irregularArray = new int[2][]; // 这里的 2 是数组容量
- // irregularArray[0] = new int[2];
- // irregularArray[1] = new int[3];
- // irregularArray[0][1] = 3;
- irregularArray[0] = new int[]{1, 2};
- irregularArray[1] = new int[]{1, 2, 3};
- for (int i=0;i<irregularArray.length;i++){
- for (int j=0;j<irregularArray[i].length;j++){
- System.out.print(irregularArray[i][j]);
- }
- System.out.println();
- }
- }
- }
编程任务
功能要求: 定义一个两行三列的二维数组 names 并赋值, 使用二重循环输出二维数组中的元素.
运行结果:
- package cn.mtianyan;
- public class ArrayTwoExercise {
- public static void main(String[] args) {
- // 定义两行三列的二维数组并赋值
- String [][] names={{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};
- for (int i=0;i<names.length;i++){
- for (int j=0;j<names[i].length;j++){
- System.out.println(names[i][j]);
- }
- System.out.println();
- }
- }
- }
运行结果:
数组总结
一维数组: 声明 创建 初始化 元素的引用 长度 数组的应用
注意的问题:
数组是引用数据类型 (不同类型数组有其初始的默认值); -
创建数组时, 会开辟连续的内存空间;
数组长度使用 length 属性获取;
数组元素的下标从 0 开始
数组下标越界问题
下集预告:
我们将学习到 java1 基础部分一个非常重要的部分, 包括方法的创建和调用, 方法的重载和传值问题, 什么是可变参数列表, 最后来看一下方法如何进行调试!
来源: http://www.jianshu.com/p/a5821c09799d