HashMap的clear方法

咱們都知道HashMap的clear()方法會清楚map的映射關係,至於怎麼實現的呢?html

下面先看一下clear()方法的源碼算法

 public void clear() {
        Node<K,V>[] tab;
        modCount++;
        if ((tab = table) != null && size > 0) {
            size = 0;
            for (int i = 0; i < tab.length; ++i)
                tab[i] = null;
        }
    }

可見方法只是把table[]置空了了table數組的元素,及鏈表的表頭元素,若是表頭被置爲null,沒法進入該鏈表,,而存的key-value呢?數組

原來現代的虛擬機都採用了可達性分析算法來判斷一個對象是否存活,當一個對象不能經過任何引用找到它就認爲它是不可達的,從而視爲可回收的對象,全部存的數據都被gc自動回收了。框架

 

原本想總結一下Java的集合框架呢,可是發現了一個很全的網址,做者也很用心,這裏推薦一下http://www.cnblogs.com/skywang12345/p/3323085.htmlspa

相關文章
相關標籤/搜索