我对Stack
中的泛型参数类型有疑问public class Stack<Item> implements Iterable<Item> {
private int N; // size of the stack
private Node<Item> first; // top of stack
// helper linked list class
private static class Node<Item> {
private Item item;
private Node<Item> next;
}
....
为什么Generics参数类型在{Item}而不是{Node}?毕竟,正是我们正在迭代的节点。
答案 0 :(得分:2)
不,Node
只是一个实现细节。请注意它是private
类的。您无法在Stack
之外访问它。
假设您有Stack
本书。您将遍历书籍,而不是通过持有这些书籍的节点。这会破坏封装。