1. 程式人生 > >解釋一個Map.Entry

解釋一個Map.Entry

demo log proc 映射 term 內部類 行為 ffffff main

技術分享圖片
public static interface Map.Entry<K,V>映射項(鍵-值對)。Map.entrySet 方法返回映射的 collection 視圖,其中的元素屬於此類。獲得映射項引用的唯一 方法是通過此 collection 視圖的叠代器來實現。這些 Map.Entry 對象僅 在叠代期間有效;更確切地講,如果在叠代器返回項之後修改了底層映射,則某些映射項的行為是不確定的,除了通過 setValue 在映射項上執行操作之外。

源碼

  /**
     * Exported Entry for EntryIterator
     */
    static final class MapEntry<K,V> implements Map.Entry<K,V> {
        final K key; // non-null
        V val;       // non-null
        final ConcurrentHashMap<K,V> map;
        MapEntry(K key, V val, ConcurrentHashMap<K,V> map) {
            this.key = key;
            this.val = val;
            this.map = map;
        }
        public K getKey()        { return key; }
        public V getValue()      { return val; }
        public int hashCode()    { return key.hashCode() ^ val.hashCode(); }
        public String toString() { return key + "=" + val; }

        public boolean equals(Object o) {
            Object k, v; Map.Entry<?,?> e;
            return ((o instanceof Map.Entry) &&
                    (k = (e = (Map.Entry<?,?>)o).getKey()) != null &&
                    (v = e.getValue()) != null &&
                    (k == key || k.equals(key)) &&
                    (v == val || v.equals(val)));
        }

    /**
     * @param args
     * 解釋一個Map.Entry
     */
    public static void main(String[] args) {

    }

}

//創建接口
interface Inter {
    //內部接口
    interface Inter2 {
        public void show();
    }
}

//實現接口中的內部接口方法
class Demo implements Inter.Inter2 {

//重寫內部類接口方法
    @Override
    public void show() {
    }

解釋一個Map.Entry