【发布时间】:2013-10-06 20:06:39
【问题描述】:
我需要一个创建集合构造函数。 这是一个构造函数将它的所有元素从我的数组复制到新的 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
}
}
我不知道如何从我的数组中获取值并创建一个数组列表。我想我还必须在某个地方放置一个迭代器。
【问题讨论】:
-
您会注意到
Collection扩展了Iterable。此外,您当前正在创建一个大小为 0 的数组。 -
数据是在我这样做之后添加的。
-
添加了什么?您的数组大小为 0。
-
您的阵列容量为零?在这种情况下,您必须使用:timeData = (E[]) new Object[c.size()];,然后:for (int i = 0; i
-
为什么不直接调用 Collection 的 toArray 方法呢? docs.oracle.com/javase/7/docs/api/java/util/…
标签: java arrays collections arraylist constructor