ホームページ >Java >&#&チュートリアル >Java の PriorityQueue にカスタムの並べ替え順序を実装するにはどうすればよいですか?
概要
Java の基本的なデータ構造である PriorityQueue は、効率的な方法を提供します。優先度に従って順序付けされた要素を管理します。ただし、デフォルトの並べ替えメカニズムは、必ずしも目的の並べ替え順序と一致するとは限りません。
カスタム 並べ替え順序
PriorityQueue のカスタム並べ替え順序を指定するには、コンストラクターを使用します。 Comparator を受け取るオーバーロードスーパーE>コンパレータ。希望の並べ替え順序に基づいて要素を比較するコンパレータを渡します。
コンパレータの実装
コンパレータは、比較ロジックを指定するために、compare メソッドを実装する必要があります。このメソッドは 2 つの要素を受け取り、相対的な順序を示す整数を返します。
例
文字列の PriorityQueue を文字列の長さで昇順に並べ替える例を考えてみましょう。以下にコンパレーターと PriorityQueue の使用例を示します。
import java.util.*; class StringLengthComparator implements Comparator<String> { @Override public int compare(String x, String y) { return x.length() - y.length(); // Sort by ascending length } } ... Comparator<String> comparator = new StringLengthComparator(); PriorityQueue<String> queue = new PriorityQueue<>(10, comparator); queue.add("short"); queue.add("very long indeed"); queue.add("medium");
add と offer
add と offer は両方とも、PriorityQueue インターフェイスのメソッド実装です。これらは一般に異なる動作をする可能性がありますが、PriorityQueue は制限されていないため、実質的な違いはありません。
出力
PriorityQueue は、次の要素を提供します。指定されたソート順。上記の例では、出力は次のようになります:
short medium very long indeed
以上がJava の PriorityQueue にカスタムの並べ替え順序を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。