首先,最重要的,就是有序。數據庫
SortedSet繼承自Set,他根據對象的比較順序(能夠是天然順序,也能夠是自定義的順序),而不是插入順序進行排序;code
LinkedHashSet,維護的是插入時的順序;對象
TreeSet是SortedSet的惟一實現類,紅黑樹實現,樹形結構,它的本質能夠理解爲是有序,無重複的元素的集合。排序
由於都是有序的,因此相應的就有get,remove和add方法。繼承
HashSet,看他的源碼能夠知道,他的底層,是hashmaprem
一段別人總結的話:get
TreeSet 是二差樹實現的,Treeset中的數據是自動排好序的,不容許放入null值。 源碼
二、HashSet 是哈希表實現的,HashSet中的數據是無序的,能夠放入null,但只能放入一個null,二者中的值都不能重複,就如數據庫中惟一約束。 hash
三、HashSet要求放入的對象必須實現HashCode()方法,放入的對象,是以hashcode碼做爲標識的,而具備相同內容的 String對象,hashcode是同樣,因此放入的內容不能重複。可是同一個類的對象能夠放入不一樣的實例 。hashmap