通用节点是否需要成为通用列表的一部分?

时间:2017-02-23 02:21:18

标签: java generics

我的任务是创建一个名为Node的类,它具有实例变量:E data(Generic)和nextNode(单链接列表实现)。为此,我创建了一个类

public class Node<E> 

并实施了所有相关方法。

然后我必须创建一个具有实例变量Node head和int size的List。实质上,List包含一组节点。但是,我不确定如何将该类定义为通用List或常规List。

public class List<E>

VS

public class List

哪种实现更有意义?为什么?感谢任何能够帮助我理解泛型概念的人。

1 个答案:

答案 0 :(得分:3)

何时使用List<E>

如果您的列表仅支持添加一种类型的元素,请使用List<E>

例如,您希望能够创建Integer列表或Double列表,但不能创建混合两者的列表。

然后,您可以支持使用泛型类型E的添加和删除界面,以强制只能添加该类型的项目而不能添加其他项目。

何时使用List

如果您的列表应支持添加多种不同类型的项目,请使用List

例如,如果您希望能够添加Node<Integer>Node<Scanner>Node<Double>

这样你就可以让程序员添加他们想要的任何类型的Node,因为这个列表没有类型参数。

警告

如果您正在编写自己的List课程(问题使其听起来像您),则上述情况适用。如果您使用的是内置的java.util.List类,那么在没有类型参数的情况下不应该使用它。