private <T> void removeAt(T[] array, int index) {
        if (currentSize == 0) {
            shiftArrayBy(array, -1);
        } else {
            System.arraycopy(array, index + 1, array, index, array.length - index - 1);
            changeCapacityBy(array, -1);
        }
    }