Java ListSet在哪里?

时间:2012-08-16 23:29:35

标签: java collections insertion-order

寻找一个插入订单集合,它还允许有效的查询和位置的子集视图(如子列表)。似乎最简单的选择是采用List的链表方法,将节点嵌入为映射值并公开该类的部分或全部列表接口。

有人会向Oracle喋喋不休吗?为已排序的地图和集添加了NavigableMap / Set,并且没有更常见的插入顺序等效...

编辑:请不要建议LinkedHashSet - 它没有任何方法来查询位置或做相对子集。

1 个答案:

答案 0 :(得分:2)

你的意思是java.util.LinkedHashSet

  

使用Set接口的哈希表和链表实现   可预测的迭代顺序。此实现与HashSet不同   因为它维护着一个贯穿所有链接的双向链表   条目。该链表定义了迭代排序,即   将元素插入集合(插入顺序)的顺序。   请注意,如果重新插入元素,则不会影响插入顺序   进入集合。 (如果s.add(e)是,则将元素e重新插入到集合中   当s.contains(e)在紧接之前返回true时调用   调用。)