- Docs
- Classes
- System.arrayCopy: copy array
- java.util.Arrays: sort, search, compare, fill,copy
- Topics
- null 和 length
Java 允许长度为0的数组,如
type[] a = new type[0];
所以要注意检查数组对象为null及长度为0的情况. - 数组操作
使用方法与C/C++相同,但多维数组的动态分配略有不同,与C/C++栈上的数组亦不同。
//基本数据类型的数组
int[] a1 = { 1, 2, 3, 4, 5 };
int[] ax = new int[] { 1, 2, 3, 4, 5 };// 等号右边的称为匿名数组, 等同于 int[] anonymous = { 1, 2, 3, 4, 5 }; int[] ax = anonymous;
int[] a2;
a2 = a1;
int[] a3;
a3 = new int[20];
for(int i = 0; i < a.length; i++)
a3[i] = i;
int[][] a4 = {
{ 1, 2, 3, },
{ 4, 5, 6, },
};
int[][][] a2 = new int[2][2][4];
for(int i = 0; i < a2.length; i++)
for(int j = 0; j < a2[i].length; j++)
for(int k = 0; k < a2[i][j].length; k++)
a2[i][j][k] = i + j + k;
nt[][][] a3 = new int[pRand(7)][][];
for(int i = 0; i < a3.length; i++)
{
a3[i] = new int[5][];
for(int j = 0; j < a3[i].length; j++)
a3[i][j] = new int[5];
}
//对象的数组
Integer[] a4 = new Integer[20];
for(int i = 0; i < a4.length; i++)
{
a4[i] = new Integer(i); //必须对每一个元素都分配内存
}
Integer[][] a4 = {
{ new Integer(1), new Integer(2)},
{ new Integer(3), new Integer(4)},
{ new Integer(5), new Integer(6)},
};
nteger[][] a5;
a5 = new Integer[3][];
for(int i = 0; i < a5.length; i++)
{
a5[i] = new Integer[3];
for(int j = 0; j < a5[i].length; j++)
a5[i][j] = new Integer(i*j);
} - xxx