Array类提供的主要方法(均为静态方法)如下。
- Object newInstance(Class componentType, int length)
创建一个具有指定元素类型和长度的新数组。
- Object newInstance(Class componentType, int… dimensions)
创建一个具有指定元素类型和维度的多维数组。
- void setXxx(Object array, int index,xxx val)
- xxx getXxx(Object array, int index)
获取数组对象中指定索引元素的xxx类型的值。
假设有这样的需求,每个班需要用一个字符串数组来存该班所有学生的姓名,但每个班的学生人数不一样,需要每个班的班主任在开学前统计该班班级人数后填入系统中,才能确定这个数组的长度,这就需要使用动态数组,并且需要根据指定学号输入学生姓名,添入数组中,具体代码如下:
编译、运行程序,运行结果如图5.14所示。
图5.14 使用Array类创建动态数组
5.8.2 操作多维动态数组
使用Array类创建一个多维动态数组的方法为newInstance(Class componentType, int… dimensions),其中dimensions参数是表示新建数组维度的int数组。例如,想创建一个三维数组,维度分别为8、10、12,则需要定义一个长度为3的整型数组(int[] d = {8,10,12}),再通过这个整型数组创建三维数组。
下面的代码创建了一个8×10二维整型动态数组,并给数组下标为[4][6]的数组元素赋值为20,具体代码如下:
public class TestArray2{
public static void main(String args[]) {
try {
Class c = Integer.TYPE;
//创建一个8×10二维整型数组
Object arr = Array.newInstance(c,dim);
//arr4为一维数组
Object arr4 = Array.get(arr,4);
//给arr[4][6]赋值为20
Array.set(arr4, 6, 20);
System.out.println("arr[4][6]的值为:" + Array.get(arr4,6));
} catch (Exception e) {
e.printStackTrace();
}
}