为什么像Node <item>这样的泛型而不是常规Node

时间:2017-02-04 00:08:29

标签: java algorithm generics

我正在学习算法I,并且遇到了名为Bag的数据结构的实现。

http://algs4.cs.princeton.edu/13stacks/Bag.java.html

但是我没有说明为什么要使用这样的Node类:

private static class Node<Item> {
        private Item item;
        private Node<Item> next;
    }

为什么物品在那里?为什么我不能使用:

private class Node {

        private Item item;
        private Node next;
}

有区别吗?感谢

1 个答案:

答案 0 :(得分:0)

是的,有区别。

Node<Item>使用所谓的通用名称。 Item不是一个类,它只是任何元素的标识符。

阅读Java源代码,你会看到类似Node<E>的东西......同样的事情。名字并不重要。

对于另一个,您需要定义Item类,这是Node可以容纳的唯一数据类型