次のコードを見つけました。ここで、優先度キューのコンストラクタでコンパレータをどのように初期化しますか?別のクラスのコンストラクタ内のコンパレータの初期化
コンパイラはJavaのインタフェースであり、別のクラスで実装する必要があります。
理想的には、コンパイラをクラスに実装し、PriorityQueue
コンストラクタでその初期化を使用する必要があります。
ただし、次のコードが機能します。どうやって?参照コードスナップでよく
PriorityQueue<ArrayList<Integer>> heap = new PriorityQueue<ArrayList<Integer>>(10, new Comparator<ArrayList<Integer>>(){
public int compare(ArrayList<Integer> list1, ArrayList<Integer> list2) {
return list1.get(2) - list2.get(2);
}
「匿名の内部クラス」を検索 –
十分な特権を持つ人は、改善のために質問を編集することができます。あなたの質問を改善するために仕事を元に戻してはいけません(そしてこのサイト全体)。 –
また、コードは技術的には 'PriorityQueue'のコンストラクタの内側ではなく、コンストラクタの呼び出しの前にあります。 –