java中自定义一个动态数组
时间: 2024-05-06 16:19:36 浏览: 124
java 创建自定义数组
以下是一个简单的 Java 自定义动态数组的实现:
```
public class DynamicArray<T> {
private int size;
private int capacity;
private Object[] elements;
public DynamicArray() {
this.size = 0;
this.capacity = 10;
this.elements = new Object[capacity];
}
public T get(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException();
}
return (T) elements[index];
}
public void add(T element) {
if (size == capacity) {
resize();
}
elements[size++] = element;
}
public void remove(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException();
}
for (int i = index; i < size - 1; i++) {
elements[i] = elements[i + 1];
}
size--;
}
private void resize() {
capacity *= 2;
Object[] newElements = new Object[capacity];
for (int i = 0; i < size; i++) {
newElements[i] = elements[i];
}
elements = newElements;
}
public int size() {
return size;
}
public boolean isEmpty() {
return size == 0;
}
}
```
这里使用了泛型,可以存储任意类型的元素。DynamicArray 类中包含了以下方法:
- `get(int index)`:获取指定下标的元素。
- `add(T element)`:添加一个元素到数组中。
- `remove(int index)`:移除指定下标的元素。
- `size()`:获取数组的大小。
- `isEmpty()`:判断数组是否为空。
当数组已满时,使用 `resize()` 方法扩容数组。在移除元素时,使用循环将指定下标之后的元素向前移动一位。
阅读全文