LinkedList を拡張する SortedLinkedList クラスを作成しようとしています。このクラスは、アイテムを SortedLinkedList に追加し、ソートすることになっています。
アイテムをソート順に追加するために、ブール値の 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;
};
このメソッドがどのように機能するかは理解していますが、get(index) を使用するよりも ListIterator を使用する方が効率的であることを読みました。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;
}
イテレータを使用してリストをソートする方法について何かアドバイスはありますか?