解释一个Map.Entry

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解释一个Map.Entry相关的知识,希望对你有一定的参考价值。

技术分享图片
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的主要内容,如果未能解决你的问题,请参考以下文章

使用HashMap须要注意的事儿:不要暴露Map.entry给外部不可信代码Map.entrySet()

Map.Entry遍历Map

Map.Entry说明

Map.Entry使用详解

java Map及Map.Entry详解

java里的泛型和通配符