我需要一个创建集合构造函数。
这是一个构造函数,将其所有元素从我的数组复制到新的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);