【发布时间】:2017-02-06 01:02:17
【问题描述】:
我需要使用泛型创建一个数组列表。我的 add 方法有时似乎可以工作,但是我的 get 方法似乎有很多问题,而且我没有收到编译错误。但是,当我尝试使用我的 get 方法从数组列表中获取一个对象时,它会抛出一个 java 越界异常。这是我到目前为止所拥有的,我正在使用 BlueJ。此外,说明是将初始“幻象”长度设置为零。
public class AL <X> {
private X[]data;
private int count;
public AL() {
count = 0;
data = (X[]) new Object[0];
}
public void add (X v) {
if (data.length != count) {
data[count] = v;
count++;
} else {
X [] newdata = (X[]) new Object[data.length * 2];
for (int i = 0; i < data.length; i++) {
newdata[i] = data [i];
}
count++;
data = newdata;
}
}
public X get(int index) {
if (index >= count || index < 0) {
throw new ICantEven();
} else {
return data[index];
}
}
}
【问题讨论】:
标签: java arrays generics get bluej