【发布时间】:2012-10-14 04:59:19
【问题描述】:
我正在尝试创建一个扩展 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;
}
关于如何使用迭代器对列表进行排序有什么建议吗?
【问题讨论】:
-
你到底在坚持什么?
-
使用 Listiterator 而不是 get(index) 方法对列表进行排序。
-
从您的帖子中可以明显看出。@matt 表示您在尝试这样做时遇到了什么问题?
标签: java linked-list