collection接口怎么使用 collection接口的子類有哪些?
collection接口的子類有哪些?Collection下的常用子接口是Listretainall實(shí)現(xiàn)原理?rJava集合類庫的頂層里的Collection,List,Set是抽象類的話是否更“正確
collection接口的子類有哪些?
Collection下的常用子接口是List
retainall實(shí)現(xiàn)原理?
r
Java集合類庫的頂層里的Collection,List,Set是抽象類的話是否更“正確”一些?
不正確,java是單繼承的。如果頂層是抽象類,對后期的代碼擴(kuò)展是不利的。java的接口是多實(shí)現(xiàn)的,官方對java的集合、集合、列表的設(shè)計(jì)也是接口設(shè)計(jì),符合java實(shí)現(xiàn)多少個(gè)接口的特點(diǎn)。如果都設(shè)計(jì)成抽象類,我們自己的類在實(shí)際開發(fā)中是實(shí)現(xiàn)不了的。具體來說,它們的結(jié)構(gòu)如下:
集合接口的接口對象集合(單列集合)
├——-List界面:元素按照錄入的順序依次保存,可以重復(fù)。
│—————-├ LinkedList接口實(shí)現(xiàn)類,鏈表,插入和刪除,沒有同步,線程不安全。
│—————-├ ArrayList接口實(shí)現(xiàn)了類、數(shù)組、隨機(jī)訪問、無同步和不安全線程。
│—————-└向量接口實(shí)現(xiàn)了類數(shù)組、同步和線程安全。
│————————└堆棧是Vector類的實(shí)現(xiàn)類。
└——-Set接口:只接收一次,不能重復(fù),內(nèi)部排序。
├—————-└HashSet使用哈希表(數(shù)組)來存儲(chǔ)元素。
│————————└鏈表維護(hù)元素的插入順序。
└———————樹集的底部被實(shí)現(xiàn)為一個(gè)二叉樹,元素排列有序。