动态数组
在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个元素值