补充上一篇当中HashMap中的对外接口
1.clear():清空HashMap,它将所有的元素设为null(无效值)来实现
public void clear(){ modCount++; Entry[] tab=table; for(int i=0;i<tab.length;i++) tab[i]=null; size=0; }
2.containsKey():containsKey()的作用是判断HashMap是否包含key
3.containsValue():判断HashMap是否包含“值为value”的元素
public boolean containsValue(Object value){ if(value==null) return containsNullValue(); Entry[] tab=table; for(int i=0;i<tab.length;i++) for(Entry e=tab[i];e!=null;e=e.next) if(value.equals(e.value)) return true; return false; }
4.entrySet()、values()、keySet()
public Set<Map.Entry<K,V>> entrySet(){ return entrySet0(); } private Set<Map.Entry<K,V>> entrySet0(){ Set<Map.Entry<K,V>> es=entrySet; return es !=null ?es:(entrySet=new EntrySet()); } private final class EntrySet extends AbstractSet<Map.Entry<K,V>>{ public Iterator<Map.Entry<K,V>> iterator(){ return newEntryIteator(); } public boolean contains(Object o){ if(!(o instanceof MapEntry)) return false; Map.Entry<K,V> e=(Map.Entry<K,V>) o; Entry<K,V> candidate=getEntry(e.getKey()); return candidate !=null && candidate.equals(e); } public boolean remove(Object o){ return removeMaping(o)!=null; } public int size(){ return size; } public void clear(){ HashMap.this.clear(); } }
待补充
时间: 2024-11-02 23:31:52