Java 集合的加載因子


HashSet()的一個構造方法,看注釋說其中0.75代表的是默認的加載因子

public HashSet(Collection<? extends E> c) {
    map = new HashMap<>(Math.max((int) (c.size()/.75f) + 1, 16));
    addAll(c);
}

加載因子是表示Hsah表中元素的填滿的程度.

若:加載因子越大,填滿的元素越多,好處是,空間利用率高了,但:沖突的機會加大了.

反之,加載因子越小,填滿的元素越少,好處是:沖突的機會減小了,但:空間浪費多了.

 

沖突的機會越大,則查找的成本越高.反之,查找的成本越小.因而,查找時間就越小.

因此,必須在 "沖突的機會"與"空間利用率"之間尋找一種平衡與折衷. 這種平衡與折衷本質上是數據結構中有名的"時-空"矛盾的平衡與折衷.

原文鏈接:https://blog.csdn.net/suyu_yuan/article/details/52708725


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM