将保持插入顺序且不重复的集合

Vis*_*h.M 25 java collections

在Java集合中哪个集合不允许重复并且还保留数据的插入顺序?

san*_*hat 22

LinkedHashSet
Run Code Online (Sandbox Code Playgroud)

根据文档

此实现与HashSet的不同之处在于它维护了一个贯穿其所有条目的双向链表.此链接列表定义迭代排序,即元素插入集合的顺序(插入顺序)


Sam*_*Sam 18

LinkedHashSet 做他们两个

Set set = new LinkedHashSet();
Run Code Online (Sandbox Code Playgroud)

  • `HashSet`不会保留插入顺序. (4认同)

Dun*_*nes 8

A LinkedHashSet应该适合该法案.

Set接口的哈希表和链表实现,具有可预测的迭代顺序.此实现与HashSet的不同之处在于它维护了一个贯穿其所有条目的双向链表.此链接列表定义迭代排序,即元素插入集合(插入顺序)的顺序.


Aru*_*hny 5

为此,您可以检查LinkedHashSet 。

Set不允许重复值LinkedHashSet保留插入顺序。

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