ホームページ >Java >&#&チュートリアル >PriorityQueue のソート順序をカスタマイズするにはどうすればよいですか?

PriorityQueue のソート順序をカスタマイズするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-13 08:40:10778ブラウズ

How Can I Customize the Sort Order of a 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。