我需要一个创建集合构造函数。
这是一个构造函数,将其所有元素从我的数组复制到新的TimeArrayList中。

到目前为止,我的构造函数看起来像这样

private E[] timeData;
private int capacity = 0;

public TimeArrayList(Collection<? extends E> c) {
    timeData = (E[]) new Object[capacity];
    for (int i = 0; i < timeData.length; i++) {
  //this is where  im having the problem
}
}


我不知道如何从数组中获取值并创建数组列表。我想我也必须在某个地方放置一个迭代器。

最佳答案

获取类型数组的最简单方法
首先,您需要为数据分配空间:

timeData = new (E[]) new Object[c.size()];


之后,您可以添加c的内容,例如:

编辑:已更改为使用注释中指出的toArray。

c.toArray(timeData);


但实际上,最简单的方法是利用标准库,而不必手动使用数组:

List<E> timeData;
...
// and in constructor:
timeData = new ArrayList<E>(c);

09-13 01:56