HashSet 和 Set 之间有什么区别?
看到代码片段像
Set<Record> instances = new HashSet<Record>();
我想知道Hashset是否是一种特殊类型的集合。它们之间有什么区别吗?
看到代码片段像
Set<Record> instances = new HashSet<Record>();
我想知道Hashset是否是一种特殊类型的集合。它们之间有什么区别吗?
A 表示一个通用的“值集”。A 是元素排序(并因此排序)的集合,a 是元素未排序或排序的集合。Set
TreeSet
HashSet
A 通常比 快很多。HashSet
TreeSet
A通常实现为红黑树(参见 http://en.wikipedia.org/wiki/Red-black_tree - 我还没有验证sun/oracle的实际实现),而a用于在数组中创建索引。红黑树的访问时间是,而a的访问时间范围从常量时间到最坏情况(每个项目都有相同的哈希码),您可以在其中具有线性搜索时间。TreeSet
TreeSet
HashSet
Object.hashCode()
O(log(n))
HashSet
O(n)