一维数组的创建
数组名 = new 数据元素类型[ 元素个数 ]
数组的内存模型
数组是存储多个相同类型变量的对象。数组的所有元素保存在堆内存中。
•创建一个数组就是在堆中创建一个数组对象。
•数组创建后立即拥有默认值。
•索引从0开始。
•连续分配
数组的初始化
在创建数组的同时就为数组元素分配空间并赋值
int a[ ] = {1,2,3,4,5} ;
数组类型 数组名[ ] = {元素1,元素2,…}
int a[ ] = new int[]{1,2,3,4,5} ;
数组类型 数组名[ ] = new 数据类型[ ]{元素1,元素2,…}
数组元素的访问
Java中,数组元素的下标从0开始
元素的下标可以是整型常量或整型表达式
数组名[元素下标] = 元素值;
int a[ ] ;
a = new int[5] ;
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;
a[4] = 5;
数组元素的访问
循环遍历字符串数组{“red”,”orange”,”yellow”,“green”,“blue”,”purple”},并将其打印
String color[] = { "red", "orange", "yellow", "green", "blue", "purple" };
for (String c: color) {
System.out.println(c);
}
数组中的常见异常
// 异常一:数组没有创建
int a[] = null;
a[0] = 1;
System.out.println(a[0]);
// 异常二:下标越界
int a[] = { 1, 2, 3 };
System.out.println(a[3]);
多维数组
多维数组的声明
二维数组的声明
数组类型 数组名 [ ] [ ]
数组类型[ ] [ ] 数组名
数组类型[ ] 数组名 [ ]
int a[ ] [ ] ;
int[ ][ ] b ;
int[ ] c[ ] ;
二维数组的创建
数组名 = new 数据元素类型[ 行数 ] [ 列数 ] ;
数组名 = new 数据元素类型[ 行数 ] [ ] ;
a = new int [3][4] ;
a = new int [3][ ] ;
a = new int [ ][4] ; //非法
必须声明行的个数
多维数组的初始化
数组类型 数组名[ ][ ] = { {元素11,元素12,…} , {元素21,元素22,… } }
数组类型 数组名[ ][ ] = new 数据类型[ ][ ] { {元素11,元素12,…} , {元素21,… } }
int a[ ][ ] = { {1,2,3}, {4,5}, {7} } ;
int a[ ][ ] = new int[ ][ ]{ {1,2,3}, {4,5}, {7} } ;
int[ ][ ] a = new int[3][ ];
a[0] = new int[2];
a[1] = new int[3];
a[2] = new int[4];
a[0][0] = 1;
a[0][1] = 2;
多维数组的内存表示
int a[ ][ ] = { {1,2,3}, {4,5}, {7} } ;
多维数组的访问
int[][] a = {{1, 2}, {3, 4, 5, 6}};
// for
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.println(a[i][j]);
}
}
// for/each
for (int[] t: a) {
for (int e: t) {
System.out.println(e);
}
}