1. ホーム
  2. java

[解決済み] javaでQueueオブジェクトをインスタンス化する方法を教えてください。

2022-04-27 14:05:39

質問

試してみると

Queue<Integer> q = new Queue<Integer>();

コンパイラがエラーを出します。何かいい方法はありませんか?

また、キューを初期化する場合、キューのメソッドを実装しなければならないのでしょうか?

どのように解決するのですか?

A Queue はインターフェースなので Queue を直接使用することができます。

最良の選択肢は、既に実装されているクラスから構築することです。 Queue インターフェイスを使用します。 AbstractQueue , ArrayBlockingQueue , ArrayDeque , ConcurrentLinkedQueue , DelayQueue , LinkedBlockingQueue , LinkedList , PriorityBlockingQueue , PriorityQueue または SynchronousQueue .

もう一つの方法は、必要なQueueインタフェースを実装した独自のクラスを書くことです。 これは、プログラムの残りの部分を提供しつつ、何か特別なことをしたいような稀な場合を除いて、必要ありません。 Queue .

public class MyQueue<T extends Tree> implements Queue<T> {
   public T element() {
     ... your code to return an element goes here ...
   }

   public boolean offer(T element) {
     ... your code to accept a submission offer goes here ...
   }

   ... etc ...
}

を実装した無名クラスを作成することもできます。 Queue . おそらく、このようなことはしたくないと思いますが、すべての基本をカバーするために選択肢として挙げておきます。

new Queue<Tree>() {
   public Tree element() {
     ...
   };

   public boolean offer(Tree element) {
     ...
   };
   ...
};