标签:缩容 arr java int newArr length 数组
一、java扩容缩容的说明
我们前面学过,创建java数组会在内存中开辟一块连续的空间,该空间固定不允许扩大和缩小。那么一个java数组要怎么实现扩容和缩容操作呢?
也许你会想到。再创建一个大容量的数组,将旧数组中的元素拷贝到新数组中,最后将新数组的地址值赋给旧数组的变量即可。
猜的很对。其实java数组的扩容在JDK中有已经实现的方法,也是使用的这种思想。缩容其实也一样,想必你已经有自己的想法了吧。
二、java数组的扩容
案例说明 | 案例1:数组的扩容: 现有数组 int[] arr = new int[]{1,2,3,4,5}; 现将数组长度扩容1倍,并将10,20,30三个数据添加到arr数组中,如何操作? |
代码实现 | public class ArrayExer01_1 { public static void main(String[] args) { int[] arr = new int[]{1,2,3,4,5}; //扩容1倍容量 // int[] newArr = new int[arr.length * 2]; //或 int[] newArr = new int[arr.length << 1]; //将原有数组中的元素复制到新的数组中 for (int i = 0; i < arr.length; i++) { newArr[i] = arr[i]; } //将10,20,30三个数据添加到新数组中 newArr[arr.length] = 10; newArr[arr.length + 1] = 20; newArr[arr.length + 2] = 30; //将新的数组的地址赋值给原有的数组变量 arr = newArr; //遍历arr for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + "\t"); } } } |
三、java数组的缩容
案例说明 | 案例:数组的缩容: 现有数组 int[] arr={1,2,3,4,5,6,7}。现需删除数组中索引为4的元素。 |
代码实现 | public class ArrayExer01_2 { public static void main(String[] args) { int[] arr={1,2,3,4,5,6,7}; int deleteIndex = 4; //方式1:不新建数组 // for(int i = deleteIndex;i < arr.length - 1;i++){ // arr[i] = arr[i + 1]; // } // // //修改最后元素,设置为默认值 // arr[arr.length - 1] = 0; //方式2:新建数组,新的数组的长度比原有数组的长度少1个 int[] newArr = new int[arr.length - 1]; for (int i = 0; i < deleteIndex; i++) { newArr[i] = arr[i]; } for(int i = deleteIndex;i < arr.length - 1;i++){ newArr[i] = arr[i + 1]; } arr = newArr; //遍历arr数组 for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + "\t"); } } } |
标签:缩容,
arr,
java,
int,
newArr,
length,
数组
From: https://blog.csdn.net/weixin_44554794/article/details/140335094