1、有效的下标
最小的下标是0,最大的下标是数组的元素个数-1
编译器并不会检查你是否用了有效的下标
但是如果运行的时候出现了无效的下标,可能会导致程序终止
2、定义数组变量
<类型>[] <名字> = new <类型>[元素个数];
int[] grades = new int[100];
double[] averages = new double[20];
·元素个数必须是整数
·元素个数必须给出
·元素个数可以是变量
3、数组成员
length -->可以获得数组元素的数量
4、直接初始化数组
·new创建的数组会得到默认的0值
·int[] scores = {87,98,69,54,65,76,87,99};
·直接用大括号给出数组的所有元素的初始值
·不需要给出数组的大小,编译器会帮助我们数数
·如何得到数组的大小?length!
5、数组变量
·数组变量是素组的管理者而非数组本身
·数组必须创建出来然后交给数组变量来管理
·数组变量之间的赋值是管理权限的赋予
·数组变量之间的比较是判断是否管理同一个数组
6、复制数组
·必须遍历源数组将每个元素逐一拷贝给目的数组
7、遍历数组
通常都是使用for循环,让循环变量i从0到<数组的length
这样循环体内最大的i正好是数组最大的有效下标
常见错误
·循环结束条件是<=数组长度
·离开循环后,继续用i的值来做数组元素的下标!
8、for-each循环(遍历数组)
for(<类型><变量>:<数组>){
……
}
对于数组当中的每一个元素,取出来作为这个类型的变量
只能输出数组中的每一个元素,无法通过变量修改数组中的元素
9、primes[cnt++]=x;
以下代码为例
int[] primes = new int[50];
int x = 5;
int cnt =0;
primes[cnt++]=x;
执行过后,primes[0]=x,cnt=1
10、二维数组
·int[][] a = new int[3][5];
·通常理解为a是一个三行五列的矩阵
11、二维数组的遍历
二维数组的遍历需要两层的for循环
1 for( int i=0; i<3; i++)
2 {
3 for( int j=0; j<5; j++)
4 {
5 a[i][j] = i*j;
6 System.out.print(a[i][j]);
7 }
8 System.out.println();
9 }
·a[i][j]是一个int
·表示第i行第j列上的单元,a[i,j]并不存在
12、二维数组的初始化
int [][] b = {
{1,2,3,4},
{1,2,3},
};
·编译器来数数
·每行一个{},逗号分隔
·最后的逗号可以存在,有古老的传统
·如果省略,表示补零