java sortedhashset类型集合是否存在?

时间:2012-04-04 19:11:38

标签: java collections

这样的事情在哪里存在?基本上我看到java有LinkedHashSet但没有可导航的哈希集类型?

4 个答案:

答案 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是相关的,但绝对不一样:)

相关问题