数组指的就是一组相关变量的集合
声明并开辟数组
数据类型 数据名称 [] = new 数据类型 [长度]; 数据类型 [] 数组名称 = new 数据类型 [长度];
分布完成
声明数组: 数据类型 数组名称[] = null; 开辟数组: 数组名称 = new 数据类型[长度];
由于数组是一种循环顺序的结构,并且数组的长度都是固定的,所以可使用循环的方式输出。
为了方便数组的输出,Java提供了一个***“数组名称 .length”***的属性,可以取得数组的长度。
数组的起始时从0开始,例如n个长的数组,起始为0,末尾为n-1。
package Array;
public class Demo1 {
public static void main(String[] args) {
System.out.println("======定义数组======");
int data[] = new int[3]; //声明并开辟了一个3个长度的数组
data[0]=10; //设置数组内容
data[1]=20; //设置数组内容
data[2]=30; //设置数组内容
for(int x = 0;x
解析: 本程序首先开辟一个int类型的数组data ,然后采用下标的方式为数组中的元素进行赋值,由于数组属于有序的结构,所以可以直接使用for循环进行输出。
注意!!!
使用的过程中不能超过定义的数组大小。例如上述例题中定义定义的长度为3,一旦x超过2,则程序会显示报错。
生成如下所示错误。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at Array.Demo1.main(Demo1.java:11)
错误即为线程*** java.lang.ArrayIndex 中的异常超出范围异常:3
在 Array.Demo1.main(Demo1.java:11)。***即出现这个错误提示就要查看是不是自己所写程序数组超出了范围。
注:
数组本身属于引用类型,如果用户直接使用未开辟空间的数组,一定会出现***“NullPointerException”*** (空指向异常)
2.二维数组
二维数组的定义
动态初始化:数据类型 数组名称[][] [] []= new 数据类型[ 行的个数] [列的个数];静态初始化:数据类型 数组名称[] [] = new 数据类型[] []{{值,值,值},{值,值,值}};
所谓二维数组实际上就是将多个一维数组变为一个大的数组,并且为每一个一维数组设置一个行号。
package Array;
public class Demo3 {
public static void main(String[] args) {
System.out.println("======二维数组的定义及使用======");
int data[][] = new int[][]{
{1,2,3},{4,5,6},{7,8,9}
};
for(int x = 0;x < data.length;x++){
for(int y = 0;y < data.length;y++){
System.out.print(data[x][y]+"t");
}
System.out.println();
}
}
}
程序执行结果 1 2 3
4 5 6
7 8 9
2.1数组与方法参数的传递
package Array;
public class Demo5 {
public static void main(String[] args) {
System.out.print("======简化传递======");
int data[] = new int[] {1,2,3};//开辟数组
int temp[] = data; //引用传递
for (int x = 0; x < temp.length; x++) {//修改数组内容
temp[x]*=2; //将数组的内容乘二保存
}
for (int x = 0; x < data.length; x++) { //循环输出数据
System.out.print(data[x]+"、");
}
}
}
程序执行结果 2、4、6
2.2冒泡排序的编写
package Array;
public class Demo6 {
public static void main(String[] args) {
int data[]=new int[] {9,2,7,6,5,4,3,0};
System.out.println("排序前的数组");
for(int x = 0;x< data.length;x++){
System.out.print(data[x]+"、 ");
}
System.out.println();
System.out.println("排序后的数组");
int temp = 0;
for (int x = 0; x < data.length; x++) {
for (int y = 0; y < data.length-1; y++) {
if(data[y]>data[y+1]){
temp = data[y];
data[y] = data[y+1];
data[y+1] = temp;
}
}
}
for (int i = 0; i < data.length; i++) {
System.out.print(data[i]+"、");
}
}
}
程序执行结果
排序前的数组
9、 2、 7、 6、 5、 4、 3、 0、
排序后的数组
0、 2、 3、 4、 5、 6、 7、 9、



