set集合繼承了collection類把敢,他是無序的不重復(fù)的钞楼。與collection的相似程度最高,其衍生的hashSet與其稍微有點差異蒸眠,其具體的體現(xiàn)是.
hashSet
1.無序
2.線程不同步
3.存儲值可以是null
hashSet的元素存儲過程中還有一個hashcode漾橙,對于每個被添加入HashSet的元素,會通過他的hashcode選擇一個位置存放他楞卡,如果在集合里有一個元素的equal()方法和他返回值一樣霜运,但是hashcode的返回值不一樣,那么則將他們放置在不同的位置淘捡,這一點和我們的set集合的定義有所沖突。所以使用hashset時候基本上需要重寫他的hashcode和equal方法池摧。
linkedHashSet
可以線性的將元素保存入我們的集合焦除,元素的順序永遠和我們添加的順序相同。性能略低于hashSet作彤。
treeSet
可以自主的調(diào)用compareTo(Object obj)的方法將集合進行排序膘魄,與此同時我們也知道,如果想調(diào)用我們的compareTo()的方法竭讳,那么相比較的的元素必須是同一類型创葡,也就是說,當(dāng)我們希望正常的使用我們的treeSet集合的時候绢慢,我們向集合插入的元素必須是同一類型的灿渴;其一些方法如下