概要
和C++不同,Java中的数组是一种引用数据类型,类似C/C++中的数组指针,内存分配在堆区。
数组长度不要求一定是常量,但是一旦创建了数组,就不能再改变它的大小。
可以使用array.length获取数组中元素的个数。
Java中,数组可用for each循环:for(变量:数组名)执行语句(Java 5支持)。
for (variable : collection) {
statement;
}
其中collection必须是一个数组或者是一个实现了Iterable接口的类对象。
Java中,允许长度为0的数组,和null不同。
Java中,支持不规则二维数组,对每行的元素进行单独分配。

初始化

int n = 10; 

int[] a1 = new int[10]; 

int[] a2 = new int[n]; // 可以使用变量申请数组 

int[] a3 = {2, 3, 4, 1, 3}; // 不使用new,直接初始化数组 

a3 = new int[] {1, 3, 4, 1, 3}; // 将一个匿名数组赋给一个已有变量,该方法不需要创建新变量 

int[] a4 = new int[0]; // Java允许长度为0的数组,常用于方法返回值 

int[][] a5 = new int[5][10]; // 创建一个5行10列的二维数组 

int[][] a6 = { 

 {85, 65, 10} 

 {54, 69, 66} 

} // 不使用new,直接初始化一个二维数组 

示例 

public class ArrayDemo { 

 public static void main(String[] args) { 

 // 创建一个一维数组 

 int[] array = {12, 54, 85, 63, 25, 95, 74, 62}; 

 // 使用for each循环输出该一维数组的值 

 for (int i : array) { 

 System.out.print(i + "\t"); 

 } 

 System.out.println(); 

 System.out.println("-------------------"); 

 // 创建一个二维数组 

 int[][] biArray = new int[3][5]; 

 // 对该二维数组赋值,其值就是其编号 

 for (int i = 0; i < 3; i++) { 

 for (int j = 0; j < 5; j++) { 

 biArray[i][j] = i * 5 + j; 

 } 

 } 

 // 使用for each循环输出该二维数组的值 

 for (int[] is : biArray) { 

 for (int i : is) { 

 System.out.print(i + "\t"); 

 } 

 System.out.println(); 

 } 

 System.out.println("-------------------"); 

 // 创建一个不规则数组,该数组有n行,第i行有i个元素 

 int n = 6; 

 int[][] unArray = new int[n][]; 

 // 对该不规则数组赋值,每个元素的值就是其两个下标之和 

 for (int i = 0; i < n; i++) { 

 unArray[i] = new int[i + 1]; 

 for (int j = 0; j <= i; j++) 

 unArray[i][j] = i + j; 

 } 

 // 使用for each循环输出该不规则数组的值 

 for (int[] i : unArray) { 

 for (int j : i) 

 System.out.print(j + "\t"); 

 System.out.println(); 

 } 

 System.out.println("-------------------"); 

 } 

}