1. 程式人生 > >HashMap的clear方法

HashMap的clear方法

ble value public clas () 可見 原來 size sky

我們都知道HashMap的clear()方法會清楚map的映射關系,至於怎麽實現的呢?

下面先看一下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.html

HashMap的clear方法