面試題常見問題List,Set和Map的區別
<1>List,Set,Map三種集合的區別:
1.List和Set集合繼承自Collection
Map集合不繼承Collection
2.List是一種有序(存儲順序)可重復(元素)的集合。
Set是一種無序(存儲順序)不可重復(元素)的集合。
Map是一種以鍵值對形式存儲的集合。
<2>ArrayList和Vector的區別:
1.ArrayList:是線程不安全的,效率高。
2.Vector:是線程安全的。
3.ArrayList和Vector都可以使用for語句或者叠代器遍歷,但是Vector還可以使用枚舉遍歷。
<3>ArrayList和LinkedList的區別:
ArrayList是采用變長數組算法實現的。
LinkedList是采用雙向循環鏈表實現的。
<4>List接口中三個實現類的區別:
LinkedList:采用雙向循環鏈表實現。可以快速執行插入,刪除的方法。線程不安全。
ArrayList:采用變長數組算法實現的,特點是:快,線程不安全。
Vector:采用變長數組算法實現的,特點是:慢,線程安全。
<5>HashMap與HashTable的區別:
1.HashMap允許存null鍵和null值,HashTable不允許存null鍵和null值。
2.HashMap是線程不安全的,HashTable線程是安全的。
3.HashMap可以采用叠代器遍歷集合中的元素,而HashTable既可以使用叠代器,還可以使用枚舉遍歷。
<6>Collection與Collections的區別:
Collection接口:是集合類的父接口,繼承它的接口只要有List和Set
Collections類:針對集合的一個幫助類,它提供了一系列的靜態方法對各種集合的搜索,排序等操作。
面試題常見問題List,Set和Map的區別