動態數組
在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個元素值
