コンテンツ
Javaでリンクリストを編成する方法クローズドリストは、プログラミングの世界における主要な種類のデータ構造の1つです。これは、次のノードを指すデータと参照を含むノードの編成です。 Javaでリンクリストをソートするために、Collectionsフレームワークと連携するリストクラスがあります。これはアルゴリズムを順序付けとして実装しています。
説明書
リンクリストをJavaで整理する (Fotolia.comのdanimagesによる尋問画像)-
新しいLinkedListオブジェクトを作成し、LinkedList変数を割り当てることによってリンクリストを宣言します。 LinkedListは一般的なListクラスのものであるため、Listを受け入れるメソッドはすべてLinkedListオブジェクトによっても受け入れられることになります。 "" LinkedList l = new LinkedList(); ""
-
同じ型のオブジェクト(整数など)をリストに追加します。これらはどのような種類のオブジェクトでもかまいませんが、リンクリストをソートするには、すべて同じタイプでなければなりません。
-
List.addFirstメソッドを使用して新しいオブジェクトをリストの先頭に挿入します。これにより、追加したオブジェクトがすべて逆の順序になります。それらをリストの最後に追加したい場合は、List.addLastメソッドを使用してください。 "" list.addFirst(1); list.addFirst(3); list.addFirst(2); "
-
並べ替え方法が何をしているのかを見る前後に、リストを反復処理して印刷します。 ""(Iterator i = list.iterator(); i.hasNext();){System.out.println(i.next());} "の場合
リンクリストをJavaでソートする
-
リストをデフォルトのコンパレータでソートします。コンパレータは、2つのオブジェクトを比較するオブジェクトです。デフォルトのコンパレータオブジェクトは小さい方の演算子を使用するので、リストは昇順で並べられます。リストを並べ替えるには、静的Collections.sortメソッドを使用します。 "" Collections.sort(list); ""
-
y){return -1; ">比較インタフェースを実装するクラスを作成し、それを順序付け引数としてインスタンスに渡すことで、カスタム比較子を使用してリストを順序付けします。 "パブリッククラスGreaterThanはComparator else if(x == y){return 0;} else {return 1;}}}"を実装しています。
-
2番目の引数としてGreaterThanの新しいインスタンスを渡すことによって、Collections.sortの呼び出しを使用します。大きいオブジェクトは他のオブジェクトより前面にあるため、リストは昇順ではなく降順でソートされます。あるいは、自分で入力したカスタムクラスからオブジェクトのリストをソートする場合、このクラスは別のComparatorクラスを使用する代わりにComparableインターフェイスを実装できます。 "" Collections.sort(list、new GreaterThan()); ""
デフォルトのコンパレータとカスタムのコンパレータを使用してソートする
どうやって
- 回路とList.size()メソッドで反復するために整数を使用することは問題です。クローズドリストを繰り返すことは、高価な計算操作です。他のコマンドのように(l [2]のような)インデックス演算子を使うとき、Javaはリストがインデックス2に達するまでリストを反復しなければなりません。しかし、小さなリストでは、これは大きな問題です。インデックス演算子を使用して反復すると、多くのリソースを必要とするものになります。
- LinkedListは同じインタフェースを実装するため、Listオブジェクトの実装方法に関係なく。
- 比較方法は、arg0がarg1の前に順序付けられている場合は-1に、等しい順序の場合は0に、arg1がarg0の前に順序付けられている場合は1に戻る必要があります。
お知らせ
- イテレータオブジェクトは、リスト内の各ノードが一度だけ訪問するようにします。プログラムを誤動作させる程度までデータ構造を悪用する可能性があるので、これを覚えておくことは重要です。