list教學 - java set




Java:按順序包含唯一元素的列表 (6)

TreeSet將做的伎倆。 例如:

SortedSet<Integer> myOrderedUniqueList = new TreeSet<Integer>()

在Java中是否有一個列表類型,按升序存儲對象,如果此對像是以前添加的,則不會添加。 我知道Java地圖可以做到這一點,但我不知道是否有一個列表類型,做我想要的。 否則,我必須重寫包含,equalsTo和添加方法,對不對?


TreeSet可能正是你所需要的。

它將元素存儲在已排序的樹中。 所以你可以按排序順序遍歷它們。 這不是一個列表,但它添加和包含方面表現更好。


所以你需要一個只包含唯一元素的列表? 兩個選項:

  • java.util.LinkedHashSet - 保留插入的順序,具有集合的語義
  • 來自commons-collections SetUniquieList - 允許列表操作,如get(..)set(..)
  • 來自commons-collections ListOrderedSet


將java.util.LinkedHashSet與使用唯一屬性(s)重寫的hashCode()和equals(Object obj)


SortedSet是Set的子接口,它保證了集合中的元素被排序。

SortedSet<Integer> orderedSet = new TreeSet<Integer>();

當您必須按照元素值的遞增順序存儲不重複的元素時使用它們





collections