Java語言來自C語言,C語言裏是沒有集合List的。
由於Java需要集合,所以就在數組上擴充了一下,這就是List,List基於數組Array,是動態的可擴展的數組。
由於需要不能重複的集合,於是就有了Set。
由於List,set是基於數組的封裝,所以操作數組比List,Set都要快。List,set失去了速度,同時也擴展了功能。
1.List,Set繼承與collection接口,Map沒有
2.List元素可重複,有序。
3.set元素不可重複,無序。
4.Map鍵值對,無序。
由於List有下標,所以可以使用for循環來獲取元素,也可以使用迭代來獲取。set只能使用迭代來獲取。
LinkedList,ArrayList,HashSet是線程不安全的,vector是線程安全的。
map中hashmap線程不安全,hashtable線程安全。