我一直致力于一项任务,这项任务要求我几乎不使用任何内置函数创建自己的ArrayList(我知道这是一个类),这让我遇到了一个问题。星号在哪里,我找不到符号 - 方法添加(E)"但我不确定为什么。 我还添加了两个添加方法,我还查看了关于这个问题的其他各种帖子,并且对于那里的解释知之甚少,因为我还有点新的。任何帮助/指针将不胜感激!
public E[] slice(int beginIndex, int endIndex)
{
if (endIndex - beginIndex > 0)
if (beginIndex >= 0 && endIndex < size) {
E[] newList = (E[])(new Object[endIndex - beginIndex]);
for (int i = beginIndex; i < endIndex; i++)
**newList[i].add(data[i]);**
return newList;
}else
throw new IndexOutOfBoundsException();
return null;
public void add(E newValue)
{
if (size == data.length) {
E[] newData = (E[])(new Object[data.length*2]);
for (int i = 0; i < data.length; i++)
newData[i] = data[i];
data = newData;
}
data[size] = newValue;
size++;
public void add(int index, E newItem)
{
set(index, newItem);
}
答案 0 :(得分:2)
newList[i]
属于E类型,不属于数组列表类型,因此它没有添加方法。
更改
会更有意义newList[i].add(data[i])
到
newList[i] = data[i];