1

並べ替えられたリンク リストの宿題に取り組んでいて、コンパレータの設定について混乱しています。任意のクラスを受け入れるようにパラメーター化されたリンク リスト クラスを作成しました。リンクされたリストは正常に機能しますが、パラメーター化されているため、リストのコンパレーターを設定する方法について混乱しています。最初にコンパレータ クラスを作成し、それをコンストラクタに渡しますか? コンパレータは、リストの順序を維持するために使用されます。または、リンク リスト クラスで定義されたコンパレータの動作を変更する、設定したクラス内に変数が必要ですか? 少し混乱しているので、これがあまり意味をなさない場合は申し訳ありません。ありがとう!

編集:

Java コレクション ライブラリの LinkedList を使用することは許可されていないことを明確にする必要があります。私の LinkedList クラスは次のようになります。

public class LinkedList<T> implements Iterable<T> {
    private LinkedListNode<T> head = null;
    private int size = 0;
        .
        .
        .
        //various methods for retrieving size, iterator etc...
}

要素を挿入したら、正しい場所に配置する必要があります。私の考えは、これを LinkedList オブジェクトのインスタンス化時に渡されるコンパレーターによって決定することです。多分このようなもの:

LinkedList<MyClass> myList(MyClass.myComparator);

私の問題は、オブジェクトの存続期間全体で使用される同じクラス (MyClass) に対して複数のコンパレーターが必要なことです。また、渡された後に LinkedList でコンパレーターを設定する方法についても混乱しています。

4

1 に答える 1