java动态数组缩容
时间: 2023-11-12 07:56:05 浏览: 115
在Java中,动态数组的缩容可以通过创建一个新的较小大小的数组,并将原始数组的元素复制到新数组中来实现。Java中的ArrayList类提供了自动缩容的功能。当ArrayList中的元素数量减少到当前容量的一半以下时,ArrayList会自动将容量缩小为当前元素数量的一半。
如果你想手动实现动态数组的缩容,可以按照以下步骤进行操作:
1. 检查数组中元素的数量是否小于容量的一半。
2. 如果是,则创建一个新数组,将当前元素的数量作为新数组的大小。
3. 将原始数组中的元素复制到新数组中。
4. 将新数组赋值给原始数组。
5. 缩小后的数组即为缩容后的数组。
下面是一个示例代码来演示如何手动实现动态数组的缩容:
```java
public class DynamicArray {
private int[] array;
private int size;
private int capacity;
public DynamicArray(int initialCapacity) {
array = new int[initialCapacity];
capacity = initialCapacity;
}
public void add(int element) {
if (size == capacity) {
// 扩容逻辑,省略
}
array[size++] = element;
}
public void remove(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException();
}
if (size < capacity / 2) {
int[] newArray = new int[size];
System.arraycopy(array, 0, newArray, 0, size);
array = newArray;
capacity = size;
}
// 移除元素逻辑,省略
}
}
```
阅读全文
相关推荐
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20250102104920.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)