当前位置: 代码迷 >> 综合 >> TreeMap的get方法
  详细解决方案

TreeMap的get方法

热度:76   发布时间:2023-10-08 18:26:04.0

 TreeMap的get(Object key):

    public V get(Object key) {Entry<K,V> p = getEntry(key);return (p==null ? null : p.value);}

 根据指定key,比较器比较去寻找指定节点,找不到返回null

final Entry<K,V> getEntry(Object key) {// Offload comparator-based version for sake of performanceif (comparator != null)return getEntryUsingComparator(key);if (key == null)throw new NullPointerException();@SuppressWarnings("unchecked")Comparable<? super K> k = (Comparable<? super K>) key;Entry<K,V> p = root;while (p != null) {int cmp = k.compareTo(p.key);if (cmp < 0)p = p.left;else if (cmp > 0)p = p.right;elsereturn p;}return null;}

public V remove(Object key):

    public V remove(Object key) {Entry<K,V> p = getEntry(key);if (p == null)return null;V oldValue = p.value;deleteEntry(p);return oldValue;}

getFirstEntry():

   final Entry<K,V> getFirstEntry() {Entry<K,V> p = root;if (p != null)while (p.left != null)p = p.left;return p;}

getLastEntry():

/*** Returns the last Entry in the TreeMap (according to the TreeMap's* key-sort function).  Returns null if the TreeMap is empty.*/final Entry<K,V> getLastEntry() {Entry<K,V> p = root;if (p != null)while (p.right != null)p = p.right;return p;}