【发布时间】:2020-11-10 03:58:27
【问题描述】:
我有一个类 ArrayList MyClass。我想将新元素添加到 ArrayList 中。目前,我正在使用 for 循环来声明新变量 myElement。在每个循环中,然后添加到 ArrayList 的末尾。
但是看起来效率很低,尤其是myArrayLength很大的时候。这也花费了我大量的计算时间。有没有一种方法可以在不使用 for 循环的情况下向 MyClass 添加多个新的 MySubClass 实例?谢谢。
public class MyClass<K,V> extends ArrayList<MyClass.MySubClass> {
MyClass(int myArrayLength) {
super(myArrayLength);
for (int i = 0; i < myArrayLength; i++) {
MySubClass myElement = new MySubClass();
this.add(myElement);
}
}
protected class MySubClass {
}
}
【问题讨论】:
-
在哪些方面效率低下?如果
myArrayLength是 1000000,那么创建 100 万个对象将需要一些时间,而且它的完成速度不会比该代码更快。 --- 你如何期望在不使用循环的情况下创建 100 万个对象? -
您可以使用多线程,这将缩短所需的时间,但我怀疑时间增益会抵消实现(和调试)所需的努力。
标签: java performance arraylist instance inner-classes