隊列接口能夠在尾部添加, 在頭部刪除, 並返回元素個數,
一個隊列的最小接口可能相似以下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框架