ホームページ >Java >&#&チュートリアル >PriorityQueue のソート順序をカスタマイズするにはどうすればよいですか?
PriorityQueue の並べ替え順序のカスタマイズ
PriorityQueue は、要素の並べ替え順序を維持する便利なデータ構造です。デフォルトでは、要素の自然な順序に基づいて並べ替えられます。この順序をカスタマイズするには、Comparator を使用できます。
Comparator の使用
PriorityQueue コンストラクターには、Comparator を引数として受け取るオーバーロードがあります。このコンパレータは、キューの並べ替え基準を定義します。たとえば、長さに基づいて文字列を並べ替える PriorityQueue について考えてみましょう。
Comparator<String> comparator = new StringLengthComparator(); PriorityQueue<String> queue = new PriorityQueue<>(10, comparator);
Comparator の実装
StringLengthComparator クラスは Comparator インターフェイスを実装します。
public class StringLengthComparator implements Comparator<String> { public int compare(String x, String y) { return x.length() - y.length(); } }
コンパレータは文字列の長さを比較することにより、
Offer vs. Add
offer メソッドと add メソッドはどちらも要素をキューに追加します。ただし、要素が正常に追加された場合、offer は true を返しますが、キューがいっぱいの場合、add は例外をスローします。制限のない PriorityQueue の場合、2 つのメソッド間に機能的な違いはありません。
以上がPriorityQueue のソート順序をカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。