集合系列日记(17.5.20)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合系列日记(17.5.20)相关的知识,希望对你有一定的参考价值。

补充上一篇当中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();
    }
}

待补充

 

以上是关于集合系列日记(17.5.20)的主要内容,如果未能解决你的问题,请参考以下文章

集合系列日记(17.5.9)

集合系列日记(17.5.13)

集合系列日记(17.5.8)

集合系列日记(17.5.10)

java学习日记20230410-集合框架体系

代码片段 - Golang 实现集合操作