• 在Collection中查找指定元素是否存在,用HashSet: add() remove() contains() 全部o(1)
  • 在Collection中查找指定元素是否存在,并通过该元素A找B,用HashMap: put(k,v) remove(k) containsKey(k) get(k) 全部o(1)
  • 加在尾,删在尾,看在尾,用Stack: push() pop() peek() 全部o(1) first in last out
  • 加在尾,删在头,看在头,用Queue: add() remove() peek() 全部o(1) first in first out
  • 加在头,删在头,看在头,加在尾,删在尾,看在尾, 用Deque 全部o(1)
最大/最小 加入新元素 删除极值 删除指定元素 查找指定元素 查找极值
B.S.T o(lgn) o(lgn) o(lgn) o(lgn) o(lgn) 两头
Heap o(lgn) o(lgn) o(n) o(n) o(1)一头

BST 查找极值

PriorityQueue<T> heap = new PriorityQueue<>((o1,o2)-> expression); 允许重复

  • 加入( -: o1 前 o2 后 +:o2 前 o1后 0:前后无所谓 )

  • 删除(与comparator无关,用的iterator 和equals() )

TreeMap<K,V> bst = new TreeMap<>((o1,o2)-> expression);   不允许重复
TreeSet<T> bst = new TreeSet<>((o1,o2)-> expression);   不允许重复
  • 加入( -: o1 前 o2 后 +:o2 前 o1后 0:不加/替换)

  • 删除( -: o1 前 o2 后 +:o2 前 o1后 0:找到了)

results matching ""

    No results matching ""