我的示例是对 ADT 的描述吗? (java)

Is my example a description for ADTs? (java)

我理解是ADTs(抽象数据类型)hide/abstract的一个方法的实现。那么,一个接口就是一个 ADT,对吗?所以我的问题是:

  1. 我的示例是否说明接口 MyStack 作为 ADT 及其在 class ImplementationOfMyStack 中的实现,正确吗?
  2. 如果问题 1 是,那为什么 class Stack 在 Java 库中?我的困惑是,我可以实例化 class Stack 以使用 push()、pop()、peek(),而无需像我的示例那样编写实现代码。所以,我认为 class Stack 有它的实现,因此是一个数据结构而不是 ADT。
public interface MyStack {  
    public void push();
    public void pop();
    public void peek();
}
public class ImplementationOfMyStack implements MyStack {

    public void push() {
        System.out.println("Code an implementation here to push a new item on top.");
        System.out.println("The implementation is a data structure e.g. linked List.");
    }

    public void pop() {
        System.out.println("Code an implementation here to pop a new item from top.");
        System.out.println("The implementation is a data structure e.g. linked List.");
    }

    public void peek() {
        System.out.println("Code an implementation here to peek a new item from top.");
        System.out.println("The implementation is a data structure e.g. linked List.");
    }
    
}
  1. 是的,接口是 abstract data type
  2. 您的实施是正确的。
  3. 总有一个Stack class in the java library. Stack is a generic data structure that represents a LIFO (last in, first out) collection of objects allowing for pushing/popping elements in constant time. (I would recommend to use the Deque interface。 Deque 定义了一组更完整和一致的 LIFO 操作。)