动态数组

在java.lang.reflect包下提供了Array类,包括一系列static方法,通过这些方法可动态的创建数组、给元素赋值、取出元素值等等

//理解数组引用——下面定义的objs数组存的数据类型是可以多样的

Object[] objs=new Object[10];

objs[0] = new String();

objs[1]= new double();

objs[2]= new Student();  //student是一个基于基础数据类型的复杂数据类型  自定义的数据类型

Array提供的主要方法如下:

static Object newInstance(Class<?>componentType,int[] dim):创建一个具有指定的组件类型和维度的新数组

//理解其中的int[]dim数组含义:
int[] dim={2,3,4};//dim是三维数组,每个维度长度分别为2,3,4
Object obj=Array.newInstance(Object.class,dim);
//上面两行等价于: int[][][]obj=new int[2][3][4]
static void setXxx(Object array,int index,xxx val):给数组对象array中第index个元素赋值val

  static xxx getXxx(Object array,int index):以xxx形式返回指定数组对象...

思考:这里只有一个决定位置的元素,当需要从多维数组取值时,如何确定元素的位置(例如二维数组第几行第几列)???

代码(应用):其实只需一个元素index就可以找到位置,下面是操作代码:

降维,多维数组其本质都是一维数组

//创建一个含有10*15*18个元素的整型数组

int dims[]={10,15,18};

Object arr=Array.newInstance(int class,dims);

//给arr[5][8][10]赋值

Object arr5=Array.get(arr,5);

Object arr58=Array.get(arr5,8);

Array.set(arr58,10,30);

//取出arr[5][8][10]值并输出

Object elem=Array.get(arr58,10);

System.out.println(elem);

static void getXxx(Object array,int index):以xxx形式返回指定数组对象array中第index个元素值