⼆维数组删除_JavaGrammar:数组
数组,⼀种应⽤⾮常⼴泛的数据结构,简单地来说就是⼀组类型相同且⽆序的元素的存储在固定长度且有序**的内存空间。
创建⼀个数组
在Java中,我们可以通过[]去声明⼀个指定类型的数组:
int[] a; // 写法⼀int a[]; // 写法⼆
当然,⼀般情况下我们更喜欢使⽤第⼀种⽅式来声明⼀个数组,因为它将类型与变量名分开,优化了代码的可读性。 刚刚我们只是声明了
⼀个数组a,但是并没有将a初始化为⼀个真正的数组。
二维数组下标怎么理解在给数组赋值时,我们
可以通过三种⽅式:
int[] a = new int[4];int[] a = new int[]{1,2,3,4};int[] a = {1,4,3,2}
其中第三种实际上是第⼆种的简写,我们可以通过使⽤new关键字去创建⼀个匿名的数组:
new int[4];
但是记得⼀定要指定长度或者指定数组中的元素,这⾥如果想要创建⼀个匿名的数组,new关键字是必不可少的:
{1,2,4,3} // 这样写是错误的!
⽆论我们怎么去定义⼀个数组,它的长度在创建之初都是被确定的,但是需要注意⼀点,它的长度也不是⽆穷⽆尽的,我们可以通过查看反
射包中的Array类源码获得它的长度数据类型:
public static Object newInstance(Class> componentType, int length)        throws NegativeArraySizeException {        return newArray(componentType, length);}
这⾥可以看到数组的数据类型是int类型,⽽int类型在前⾯我们也提过,它的最⼤长度是$2^{31}$,也就是2GB。
访问数组中的元素
我们可以通过下标的⽅式来访问数组中的元素,数组的下标从0开始,最⼤长度是数组的长度,如果我们访问超出数组下标范围的数据,就
会抛出索引越界异常(ArrayOutOfIndexError),因为我们可以通过下标直接访问数组中的元素,所以时间复杂度是O(1)。
int[] a = {1,2,3};System.out.println(a[0]); // 1
往数组中添加元素
刚刚我们说过,数组中的长度是固定的,所以我们⽆法去改变该数组的结构,但是我们可以通过另外⼀种⽅法来实现这样的效果:
int[] arr = {9,7,5};int[] temp = new int[arr.length+1];for(int i = 0;i < arr.length;i++) { temp[i]=arr[i];}temp[arr.length] = 6;arr = temp;
删除元素
和新增⼀样,删除数组中的元素同样是不允许的,我们可以通过和新增类似的⽅式来完成删除的操作:
int[] arr = { 1, 2, 3, 4, 5};int[] tmp = new int[arr.length - 1];for (int i = 0; i < tmp.length; i++) {  tmp[i] = arr[i];}arr = tmp;
原理上和新增是⽐较类似的,这⾥我就不再画图去详细的说明了
⼆维数组(了解)
我们像创建⼀维数组⼀样可以创建⼀个⼆维数组
int[][] doubleArr = new int[2][3];int[][] doubleArr = new int[5][];
这⾥需要注意⼀点,⼆维数组的创建时,可以指定⼀个维度的长度,⽽不指定第⼆维度的长度,使之动态的变化。⽐如我们可以画个星星
String[][] arr = new String[5][];for (int i = 0; i < arr.length; i++) {  arr[i] = new String[i + 1];  for (int j = 0; j < arr[i].length;j++) {    arr[i][j] = "*";  }}for (int i = 0; i < a

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。