队列接口能够在尾部添加, 在头部删除, 并返回元素个数,
一个队列的最小接口可能相似以下java
public interface MyQueue<E> { void add(E element); E remove(); int size(); }
队列实现可能有两个, 循环数组跟链表队列数组
public class MyCircularArrayQueue<E> implements MyQueue<E> { private E[] elements; private int head; private int tail; MyCircularArrayQueue(int capacity) {...} @Override public void add(E e) {...} @Override public E remove() {...} @Override public int size() {...} }
public class MyLinkedListQueue<E> implements MyQueue<E> { @Override public void add(E e) {...} @Override public E remove() {...} @Override public int size() {...} public MyLinkedListQueue() {...} private Link<E> head; private Link<E> tail; public class Link<E> { private E element; private Link<E> next; } }
jdk类库中, 每种数据结构接口一般会对应一个Abstract类,
这是类库设计者将一些通用的实现方法集成了, 方便框架设计数据结构
集合类的基本接口是Collection框架