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>允许您使队列的所有节点具有相同的类型,并在编译时指定该类型。

例如,您可以有以下类型的节点:

  • 整数
  • 细绳
  • YourDefinedJobType

(但只有您指定的单一类型可以进入队列。)

通用表示法要求只有该类型的节点才能排队,这非常方便,因为如果您设置Node<String>并尝试添加 YourDefinedJobType 的节点,则会引发运行时错误。

其次,当您开始Node<String>工作时,您Node<YourDefinedJobType>无需任何额外的队列代码即可开始工作。

此外,您可以保证拥有正确类型的节点,并且不必强制转换它们。

Joshua Bloch 的书Effective Java中有一个示例章节,它处理泛型。它当然值得一读,它会回答你关于泛型的问题。

于 2013-03-02T20:56:12.133 回答