码迷,mamicode.com
首页 > 其他好文 > 详细

hashMap 方法详解

时间:2015-06-01 18:08:07      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:

参考文章 :http://www.iteye.com/topic/754887

 /** 
     * 扩展散列表的容量 
     * @param newCapacity 
     */  
    void resize(int newCapacity) {  
        Entry[] oldTable = table;  
        int oldCapacity = oldTable.length;  
        Entry[] newTable = new Entry[newCapacity];  
        transfer(newTable);  
        table = newTable;  
        threshold = (int) (newCapacity * loadFactor);  
    }  
  
    /** 
     * 重新进行散列 
     * @param newTable 
     */  
    void transfer(Entry[] newTable) {  
        Entry[] src = table;  
        int newCapacity = newTable.length;  
        for (int j = 0; j < src.length; j++) {  
            Entry<K, V> e = src[j];  
            if (e != null) {  
                src[j] = null;  
                do {  
                    Entry<K, V> next = e.next;  
                    int i = indexFor(e.hash, newCapacity);  
                    e.next = newTable[i];  
                    newTable[i] = e;  
                    e = next;  
                } while (e != null);  
            }  
        }  
    }

 

hashMap 方法详解

标签:

原文地址:http://www.cnblogs.com/cici-new/p/4544177.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!