Dynamic Array
A complete implementation of a dynamic array with automatic resize functionality and efficient operations.
public class Array<T> {
private Object[] array;
private int size;
private int capacity;
public Array() {
capacity = 5;
array = new Object[capacity];
size = 0;
}
public void insert(T element) {
if (size == capacity) {
resize();
}
array[size] = element;
size++;
}
public boolean delete(T element) {
int index = search(element);
if (index == -1) {
return false;
}
shiftLeft(index);
size--;
return true;
}
public int search(T element) {
for (int i = 0; i < size; i++) {
if (array[i].equals(element)) {
return i;
}
}
return -1;
}
private void resize() {
capacity *= 2;
Object[] newArray = new Object[capacity];
for (int i = 0; i < size; i++) {
newArray[i] = array[i];
}
array = newArray;
}
private void shiftLeft(int index) {
for (int i = index; i < size; i++) {
array[i] = array[i + 1];
}
}
public int size() {
return size;
}
}