java - 如何制作链接堆栈泛型?

标签 java generics

我正在做实验,我查看了很多Java泛型示例,但我无法理解它。我的目标是实现链接堆栈。它有 2 个文件:IntStack.javaIntNode.java 。这些代码的部分是:

public class IntNode {
    private int element = 0;
    private IntNode next = null;
    public IntNode(final int data, final IntNode next) {
        this.element = data;
        this.next = next;
}

public class IntStack {
private IntNode top = null;
public boolean isEmpty() {
    return this.top == null;
}

如何将它们转换为泛型类型?我知道它应该使用 <T> ,我写的这些代码,正确与否?

public class Node<T> {
    private T element;
    private Node<T> next = null;
    public Node(final T data,final Node next) {
        this.element = data;
        this.next = next;
    }
}

最佳答案

你很接近。 Node 构造函数的 Node 参数也应该参数化:

public class Node<T> {   
    private T element;
    private Node<T> next = null;
    public Node(final T data,final Node<T> next) {
        this.element = data;
        this.next = next;
    }
}

关于java - 如何制作链接堆栈泛型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53514573/

相关文章:

java - 如何将 String 输入转换为 int 并压入堆栈

java - 如何使 logging.properties 和 commons-logging.properties 属性文件工作?

swift - 我可以使 Swift 枚举泛型,以便我可以使用它的 case 来推断泛型类的类型吗?

java - 泛型类型的类参数

typescript - 我可以在 Typescript 中使用泛型类型作为对象索引类型吗?

java - 如果数据不变,我应该使用什么类型的Map?

java - 创建可分割类

java - 受信任的加载程序试图加载沙盒资源

java - 在 Guava 中,为什么在可能使用 "T"的地方只使用 "? super T"?

ios - Swift 泛型 Bool 不可转换为 Bool