1

キューでの操作の作成と実行を含む割り当てがあります...指示の中で、彼は次のように言い始めます...

Node Class: You will extend the following class for (some of) the questions below.
   public class Node<T>{
       protected      T  data;
       protected Node<T> next; 
   }
Implement the QUEUE (FIFO) abstract data type. For this, you will create a class called Queue that extends Node<T>. Your class should have the following methods:

public void enqueue(Node<T> item)
// Purpose: adds item to the queue
// Preconditions:  item should exists (not be null)
// Postconditions: item is added to the end of the queue
//                 the size of the queue is increased by 1

...など、さらに数ページの要件などがあります...

わからないことがいくつかあります... とはpublic class Node<T>どういう意味ですか? (斜体部分)。

また、エンキュー以外にも多くの方法があるため、適切な設計では、この方法の外でキューを作成する必要があると思いますか?

前もって感謝します!

4

1 に答える 1

1

Node<T>キューのすべてのノードを同じタイプにし、コンパイル時にそのタイプを指定できます。

たとえば、次のタイプのノードを持つことができます。

  • int
  • YourDefinedJobType

(ただし、指定した単一のタイプのみがキューに入る可能性があります。)

一般的な表記では、そのタイプのノードのみがキューに入れられる必要があります。これは、セットアップしてNode<String>YourDefinedJobTypeのノードを追加しようとすると、ランタイムエラーがスローされるため、非常に便利です。

次に、Node<String>作業を開始するとNode<YourDefinedJobType>、追加のキューコードなしで作業を開始できます。

さらに、正しいタイプのノードがあることが保証されており、それらをキャストする必要はありません。

Joshua Blochの本、 Effective Javaから、ジェネリックスを扱ったサンプルの章があります。それは確かに読む価値があり、ジェネリックに関するあなたの質問に答えます。

于 2013-03-02T20:56:12.133 に答える