多维数组怎么理解?
一维数组的每个基本单元都是基本数据类型的数据;二维数组就是每个基本单元是一维数组的一维数组;那么n维数组的每个基本单元都是n-1维数组的n-1维数组。如果还不明白就看图吧!
数组初始化:
int [] arr = new int [5];(表示分配5个空间大小的一维数组,new关键字会分配一维数组空间并返回首地址给arr,因此arr里面存的只是一个地址而已)
int [] arr = {1,2,3,4,5} (表示创建了一维数组,数组里面的数分别为1,2,3,4,5)
int [][] arr = new int [4][5];(表示分配4行5列的二维数组)
int [][] arr = {{1,2},{3,4}};
int [][][]arr = new int [3][4][5];(表示3个二维数组,二维数组是4行5列)
int [][][] arr={{{1,2,3},{4,5,6}}, {{7,8,9},{10,11,12}},{{2,3,1},{4,5,6}}};(黑色括起来的表示二维数组)
Java的util包下的Arrays类(静态)包含一些数组的常用操作:
1.Arrays.fill(arr, 5);(这样操作之后arr数组所有的数都是5)
2.Arrays.fill(arr, 2,4,5);(这样操作之后从下标为2的位置一直到下标为4的位置之间的数都是5)
3.Arrays.sort(arr);(对数组从小到大排序)
4.int [] newarr = Arrays.copyOf(arr,58);(表示新创建了一个数组空间为58的newarr一维数组,并且把旧数组arr数组里面的数拷贝到新数组newarr里面)
5.int [] newarr = Arrays.copyOfRange(arr,1,6);(把arr旧数组从下标1到6之间所有数拷贝到新数组newarr里面)
Java的util包下的ArrayList类(动态列表)包含一些常用操作:
注意:ArrayList类(是动态列表,不是数组,调用toArray()函数才能转化为数组)
1.isEmpty()函数判空
2.add(ElemType element)函数(该函数用于向ArrayList中添加一个元素到末尾,并返回一个布尔值,表示添加成功与否。注意,这里的泛型ElemType可以是任何类型)
3.toArray()函数和toArray(ElemType[] a)函数
这两个函数都是将列表List中的元素转导出为数组,不同的是,toArray()函数导出的是Object类型数组,而toArray[ElemType[] a]函数导出的是指定类型的数组。当使用ArrayList时,有时想获得一个实际的数组,这个数组包含了列表的内容。可以通过调用方法toArray()来实现。如果list.toArray()返回的数组中存放的是list原始对象的引用,只是创建了一个新的数组来装这些引用,并没有对list中原始对象进行拷贝或复制。