这样的事情在哪里存在?基本上我看到java有LinkedHashSet但没有可导航的哈希集类型?
答案 0 :(得分:1)
这不是HashSet
,但作为Set
的后代,您拥有TreeSet
此类实现由TreeMap实例支持的Set接口。此类保证有序集合按元素顺序升序
您可以使用迭代器
遍历元素public Iterator iterator()
返回此set中元素的迭代器。元素按升序返回
答案 1 :(得分:1)
就其本质而言,不会对基于哈希的数据结构进行排序。你可以编写包装器来补充它的附加数据结构(这或多或少是LinkedHashMap
所做的)。但是,虽然保留哈希集和列表是有意义的,但为了保持良好的排序,您需要树或类似的数据结构。但是树本身可以作为一个集合工作,所以你基本上会复制信息(比set set list更多,它们有两个以上不同的set实现)。因此,如果您需要订购,最好的解决方案是使用TreeSet
或其他SortedSet
。
答案 2 :(得分:1)
您可以使用TreeSet,但其中的所有操作都是lg(n)
您可以使用LinkedHashSet,它将链接列表保留在hashset之上,但它只维护插入排序(首先插入将是迭代器中的第一个元素),您不能自然或自定义排序
您也可以使用TreeSet + HashSet方法,但每个元素的两个引用将被保留,而添加和删除仍然是lg(n)包含将成为预期o(n)
明智地选择:)
答案 3 :(得分:0)
我猜有些TreeMap是相关的,但绝对不一样:)