解釋一個Map.Entry
阿新 • • 發佈:2018-10-24
demo log proc 映射 term 內部類 行為 ffffff main
public static interface Map.Entry<K,V>映射項(鍵-值對)。Map.entrySet 方法返回映射的 collection 視圖,其中的元素屬於此類。獲得映射項引用的唯一 方法是通過此 collection 視圖的叠代器來實現。這些 Map.Entry 對象僅 在叠代期間有效;更確切地講,如果在叠代器返回項之後修改了底層映射,則某些映射項的行為是不確定的,除了通過 setValue 在映射項上執行操作之外。
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