【发布时间】:2015-02-02 17:24:31
【问题描述】:
我已经编写了这个泛型类作为 Arraylist 的扩展(我知道我不应该这样做,但我必须这样做)。这个想法是添加通用对象并对它们进行排序。它编译得很好,当我测试它并添加一个对象(来自另一个类)时它工作得很好。但是,当我添加第二个对象时,程序会等待大约 30 秒,然后返回“java.lang.outofmemory error out of heap space”。
import java.util.ArrayList;
import java.util.*;
/**
* extending to ArrayList
*/
public class SortedArrayList<E extends Comparable> extends ArrayList<E>
{
/**
* Constructing the super
*/
public SortedArrayList()
{
super();
}
public void insertAndSort (E element){
if (isEmpty()){
add(element);
}
for ( int i = 0; i < size(); i++){
E otherElement = get(i);
if(element.compareTo(otherElement) > 0){
add(i, element);
}
if(element.compareTo(otherElement) < 0) {
add(i+1, element);
}
}
}
}
谁能明白为什么会这样?我的 for 循环有问题吗? 谢谢
【问题讨论】:
-
嗯,每次您调用
insertAndSort时,您都有可能加倍列表的大小。我怀疑你不是故意的。你调试过吗?
标签: java heap-memory comparator extend