14 List,Set,Map的區別

list,set,map的區別

list與set是存儲單列數據的集合,而map是存儲雙列數據的集合。

List是有序的,可重複,分爲ArrayList,Vector,LinkedList
Set 是無序的,不可重複,分爲HashSet,TreeSet
Map 是<鍵,值>對存儲,鍵不可重複,值可重複,分爲HashMap,TreeMap

HashSet底層用的HashMap。
TreeSet底層用的TreeMap。

List系列對比

ArrayList與Vector是數組結構,線程安全,查改快,增刪慢。
LinkedList是鏈表結構,線程不安全,查改慢,增刪快。

Set系列對比

HashSet去重複,但不排序。使用hashCode()與equals()方法。先判定hashCode是否相同,若不同,則存儲,若相同,再通過equals()方法進行比較,返回false,則存儲,返回true,則不存。
TreeSet去重複,也可排序。使用的是二分法,通過接口Comparable與Comparator,通過CompareTo()與Compare方法進行比較。若希望保存重複的值並排序,則使用匿名內部類的方法,重寫Comparator中的Compare()方法。

Map系列對比

HashMap可存儲空的鍵值對,線程不安全
HashTable不可以存儲空的鍵值對,線程安全

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章