Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaのコンパレータを介してPriorityQueueを実装する


JavaでComparatorを介してPriorityQueueを実装するためのコードは、次のとおりです-

import java.util.*;
public class Demo{
   public static void main(String[] args){
      Scanner my_scan = new Scanner(System.in);
      PriorityQueue<Demo_class> my_pq = new PriorityQueue<Demo_class>(3, new demoComparator());
      Demo_class obj_1 = new Demo_class("Joe", 25);
      my_pq.add(obj_1);
      Demo_class obj_2 = new Demo_class("Goldberg", 27);
      my_pq.add(obj_2);
      while (!my_pq.isEmpty()){
         System.out.println(my_pq.poll().getName());
      }
   }
}
class demoComparator implements Comparator<Demo_class>{
   public int compare(Demo_class s1, Demo_class s2){
      if (s1.age < s2.age)
      return 1;
      else if (s1.age > s2.age)
      return -1;
      return 0;
   }
}
class Demo_class{
   public String name;
   public int age;
   public Demo_class(String name, int age){
      this.name = name;
      this.age = age;
   }
   public String getName(){
      return name;
   }
}

出力

Goldberg
Joe

Demoという名前のクラスには、main関数が含まれています。ここでは、新しいスキャナーオブジェクトと優先キューが定義されています。 Demoクラスの2つのインスタンスが作成され、要素が追加されます。

優先キューは空かどうかがチェックされ、空でない場合は、優先キューでポーリング関数が呼び出され、その名前が取得されます。これで、Comparatorは新しく作成されたクラスによって実装され、compare関数はDemoクラスの2つのインスタンスからの2つの値を比較します。デモクラスは名前と年齢を取り入れます。コンストラクターと、名前を返す「getName」という名前の関数を定義します。


  1. 編集可能なJLabelをJavaで実装するにはどうすればよいですか?

    JLabel JLabel クラスはJComponentを拡張できます クラスとJLabelのオブジェクトは、 GUIに関するテキスト命令または情報を提供します 。 JLabel 1行の読み取り専用テキストを表示できます 、画像 または両方のテキスト および画像 。 JLabelの重要なメソッドは、 setText()、setIcon()、setBackground()、setOpaque()、setHorizo​​ntalAlignment()、setVerticalAlignment()です。 など JLabelは明示的にPropertyChangeListenerを生成

  2. JavaでJToggleButtonを実装するにはどうすればよいですか?

    JToggleButton JToggleButton AbstractButtonの拡張です また、オンに切り替えることができるボタンを表すために使用できます。 およびオフ 。 JToggleButtonの場合 を初めて押すと、押したままになり、2回押すと離すことができます。 JToggleButton ActionEventを生成します 押すたびに。 JToggleButton ItemEventを生成することもできます 、このイベントは、選択の概念をサポートするコンポーネントによって使用されます。 JToggleButtonの場合 を押すと選択されます。