gpt4 book ai didi

java - HashSet 上的迭代成本还取决于支持映射的容量吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:34:49 26 4
gpt4 key购买 nike

来自 HashSet 的 JavaDocs :

This class offers constant time performance for the basic operations (add, remove, contains and size), assuming the hash function disperses the elements properly among the buckets. Iterating over this set requires time proportional to the sum of the HashSet instance's size (the number of elements) plus the "capacity" of the backing HashMap instance (the number of buckets). Thus, it's very important not to set the initial capacity too high (or the load factor too low) if iteration performance is important

为什么迭代花费的时间与总和(集合中的元素数 + 支持映射的容量)成正比,而不仅仅是集合本身的元素数?

.

最佳答案

HashSet 是使用 HashMap 实现的,其中元素是映射键。由于 map 具有定义数量的桶,可以包含一个或多个元素,因此迭代需要检查每个桶,无论它是否包含元素。

关于java - HashSet 上的迭代成本还取决于支持映射的容量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12069877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com