1. 程式人生 > >面試題常見問題List,Set和Map的區別

面試題常見問題List,Set和Map的區別

方法 叠代 數組 針對 面試題 font 鏈表實現 元素 靜態方法

<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的區別