为什么Java提供了该类型的几种不同实现,包括和而不是?SetHashSetTreeSetArraySet
Set
HashSet
TreeSet
ArraySet
仅基于元素数组且不按特定顺序排列的集合将始终具有用于包含检查的 O(n) 时间。它不会非常有用,IMO。你什么时候想用它来代替 或 ?HashSetTreeSet
数组最有用的方面是,您可以非常快速地访问具有特定索引的元素。当涉及到布景时,这并不是非常相关。
有CopyOnWriteArraySet,它是一个由数组支持的集合。
这并不是特别有用,因为它的性能对于大型集合来说不是很好。