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