我正在尝试创建一个扩展 LinkedList 的 SortedLinkedList 类。此类应该将项目添加到 SortedLinkedList 并对其进行排序。
我正在尝试覆盖 boolean add(E obj) 方法,以便按排序顺序添加项目。
在 Stackoverflow 问题上,我发现了以下覆盖 add(E obj) 的方法:
public boolean add(E obj) {
int index = 0;
for( ; index<size() ; index++){
E object= get(index);
if(obj.compareTo(object) < 0){
break;
}
}
add(index, obj);
return true;
};
我理解这个方法是如何工作的,但是我读过使用 ListIterator 比使用 get(index) 更有效。我一直在尝试使用 ListIterator,但似乎无法让一切正常工作。
这是我使用 Listiterator 所取得的进展,我确定它有问题,但我似乎无法弄清楚:
public boolean add(E obj)
{
add(size(), obj);
ListIterator<E> iterator = listIterator();
while(iterator.hasNext())
{
E object = iterator.next();
if(obj.compareTo(object)<0)
{
//do something;
}
}
return true;
}
关于如何使用迭代器对列表进行排序的任何建议?