core java collection溫習

接口

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

  • 擴展了Iterable接口,能夠支持for each
  • Iterator, next() remove()方法都是操做的迭代器前面的那一個元素,
    這裏與InputStream.read()方法有點相似
  • 迭代器訪問順序取決於集合順序
  • Collection提供了一些須要實現的方法: iterator() add() addAll()
    remove() removeAll() contains() containsAll() retainAll()
    size() isEmpty() equals() clear() toArray()

具體的集合

  • ArrayList
  • LinkedList
    ** 雙向連接
  • ArrayDeque
  • HashSet
    ** LinkedHashSet
  • EnumSet
  • PriorityQueue
  • HashMap
    ** LinkedHashMap
  • TreeMap
  • EnumMap
  • WeakHashMap
  • IdentityHashMap
相關文章
相關標籤/搜索