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