我的示例是对 ADT 的描述吗? (java)
Is my example a description for ADTs? (java)
我理解是ADTs(抽象数据类型)hide/abstract的一个方法的实现。那么,一个接口就是一个 ADT,对吗?所以我的问题是:
- 我的示例是否说明接口 MyStack 作为 ADT 及其在 class ImplementationOfMyStack 中的实现,正确吗?
- 如果问题 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.");
}
}
- 是的,接口是 abstract data type。
- 您的实施是正确的。
- 总有一个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 操作。)
我理解是ADTs(抽象数据类型)hide/abstract的一个方法的实现。那么,一个接口就是一个 ADT,对吗?所以我的问题是:
- 我的示例是否说明接口 MyStack 作为 ADT 及其在 class ImplementationOfMyStack 中的实现,正确吗?
- 如果问题 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.");
}
}
- 是的,接口是 abstract data type。
- 您的实施是正确的。
- 总有一个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 操作。)