Collection集合接口和Map接口有什么關系?
沒有直接關系,但是一些子類會有依賴,Collection是最基本的集合接口,聲明了適用于JAVA集合(只包括Set和List)的通用方法。Map接口并不是Collection接口的子接口,但是它仍然被看作是Collection框架的一部分。
Collection 和 Collections 有什么區別?
Collection是最基本的集合接口,Collection派生了兩個子接口list和set,分別定義了兩種不同的存儲方式。
Collections是一個包裝類,它包含各種有關集合操作的靜態方法(對集合的搜索、排序、線程安全化等)。此類不能實例化,就像一個工具類,服務于Collection框架。
ArrayList和LinkedList的區別?分別用在什么場景?
①. ArrayList和LinkedList可想從名字分析,它們一個是Array(動態數組)的數據結構,一個是Link(鏈表)的數據結構,此外,它們兩個都是對List接口的實現。
前者是數組隊列,相當于動態數組;后者為雙向鏈表結構,也可當作堆棧、隊列、雙端隊列
②. 當隨機訪問List時(get和set操作),ArrayList比LinkedList的效率更高,因為LinkedList是線性的數據存儲方式,所以需要移動指針從前往后依次查找。
③. 當對數據進行增加和刪除的操作時(add和remove操作),LinkedList比ArrayList的效率更高,因為ArrayList是數組,所以在其中進行增刪操作時,會對操作點之后所有數據的下標索引造成影響,需要進行數據的移動。
④. 從利用效率來看,ArrayList自由性較低,因為它需要手動的設置固定大小的容量,但是它的使用比較方便,只需要創建,然后添加數據,通過調用下標進行使用;而LinkedList自由性較高,能夠動態的隨數據量的變化而變化,但是它不便于使用。
⑤. ArrayList主要控件開銷在于需要在lList列表預留一定空間;而LinkList主要控件開銷在于需要存儲結點信息以及結點指針信息。
使用場景
鏈表,插入刪除快,查找修改慢。 適用于頻繁增刪的場景。
數組,查找快,插入刪除慢。 適用于頻繁查找和修改的場景。
更多關于“Java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經驗,課程大綱更科學更專業,有針對零基礎的就業班,有針對想提升技術的好程序員班,高品質課程助力你實現java程序員夢想。