寻找一个插入订单集合,它还允许有效的查询和位置的子集视图(如子列表)。似乎最简单的选择是采用List的链表方法,将节点嵌入为映射值并公开该类的部分或全部列表接口。
有人会向Oracle喋喋不休吗?为已排序的地图和集添加了NavigableMap / Set,并且没有更常见的插入顺序等效...
编辑:请不要建议LinkedHashSet - 它没有任何方法来查询位置或做相对子集。
答案 0 :(得分:2)
你的意思是java.util.LinkedHashSet:
使用Set接口的哈希表和链表实现 可预测的迭代顺序。此实现与HashSet不同 因为它维护着一个贯穿所有链接的双向链表 条目。该链表定义了迭代排序,即 将元素插入集合(插入顺序)的顺序。 请注意,如果重新插入元素,则不会影响插入顺序 进入集合。 (如果s.add(e)是,则将元素e重新插入到集合中 当s.contains(e)在紧接之前返回true时调用 调用。)