我正在创建一个 Vector 类比来了解更多关于一维数据结构的信息。
问题是这样的:我的 merge() 方法(基本上是我的 append() 方法的扩展)正在抛出 ArrayOutOfBoundsException。
MyVector 类本身很长,所以我将发布相关部分。
类/对象字段:
public class MyVector implements Cloneable
{
private Object[] data;
private static final int INITIAL_CAPACITY = 100;
private int size;
默认(目前只有一个)构造函数,以及 append() 方法:
public MyVector()
{
data = new Object[INITIAL_CAPACITY];
size = 0;
}
public void append(Object element)
{
if (size == data.length)
expand();
data[size++] = element;
}
合并()方法:
public void merge(MyVector vector2)
{
for(int i = this.size; i < (this.size + vector2.size()); ++i)
this.append(vector2.data[i]);
this.size += vector2.size();
}
叫它的地方:
vec.merge(vecCopy);
vec 在类的前面被创建为 MyVector 对象,而 vecCopy 是对 vec 中数据的引用的副本。
这就是所有相关的代码。我想答案是显而易见的,但无论出于何种原因,我都看不到它。