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