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,具体代码如下:

    1. public class TestArray2{
    2. public static void main(String args[]) {
    3. try {
    4. Class c = Integer.TYPE;
    5. //创建一个8×10二维整型数组
    6. Object arr = Array.newInstance(c,dim);
    7. //arr4为一维数组
    8. Object arr4 = Array.get(arr,4);
    9. //给arr[4][6]赋值为20
    10. Array.set(arr4, 6, 20);
    11. System.out.println("arr[4][6]的值为:" + Array.get(arr4,6));
    12. } catch (Exception e) {
    13. e.printStackTrace();
    14. }
    15. }