因为Set集合的底层是采用哈希表存储元素的
–>哈希表由数组和链表组成
–>当集合添加元素的时候会生成一个哈希值,哈希值是根据地址或字符串或数字算出来的int类型数值
–>根据元素的哈希值跟数组的长度<16>求余算出应存入的位置
–>判断数组中当前位置是否为NULL,(1)如果为null直接存入 (2) 如果不为null,表示有元素,采用equals比较属性值①一样则不存 ②不一样,则存入数组,老元素挂在新元素下面形成链表
–>如果数组存满到16*0.75=12时,数组就会自动扩容为原来的两倍
Set集合添加元素是无序的原因:
最新推荐文章于 2024-05-14 16:46:02 发布