java Java集合類(lèi)庫(kù)的頂層里的Collection,List,Set是抽象類(lèi)的話(huà)是否更“正確”一些?
Java集合類(lèi)庫(kù)的頂層里的Collection,List,Set是抽象類(lèi)的話(huà)是否更“正確”一些?不正確。Java是單繼承。如果頂層是抽象類(lèi),對(duì)以后的代碼擴(kuò)展非常不利。java接口是多實(shí)現(xiàn)的,java官
Java集合類(lèi)庫(kù)的頂層里的Collection,List,Set是抽象類(lèi)的話(huà)是否更“正確”一些?
不正確。Java是單繼承。如果頂層是抽象類(lèi),對(duì)以后的代碼擴(kuò)展非常不利。java接口是多實(shí)現(xiàn)的,java官方設(shè)計(jì)為集合和集合,列表也是接口設(shè)計(jì),符合java接口實(shí)現(xiàn)的特點(diǎn)。如果它們都被設(shè)計(jì)成抽象類(lèi),我們將無(wú)法在實(shí)際開(kāi)發(fā)中實(shí)現(xiàn)我們自己的類(lèi)。具體結(jié)構(gòu)如下:
collection interface的接口對(duì)象集合(單列集合)
ζ-list interface:元素按條目順序保存,可以重復(fù)
│--ζLinkedList接口實(shí)現(xiàn)類(lèi),鏈表,插入刪除,不同步,行不安全
│--ζArrayList接口實(shí)現(xiàn)類(lèi),數(shù)組,隨機(jī)訪(fǎng)問(wèn),無(wú)同步,線(xiàn)程不安全!---向量接口實(shí)現(xiàn)類(lèi)數(shù)組,同步,線(xiàn)程安全!-------stack是vector類(lèi)的實(shí)現(xiàn)類(lèi)
----set接口:只接收一次,不能重復(fù),做內(nèi)部排序
ζ-----HashSet使用哈希表(數(shù)組)存儲(chǔ)元素
TreeSet的底層實(shí)現(xiàn)是二叉樹(shù),元素按順序排列
spring boot,
hibernate,
data JDBC,
mybatis
更多內(nèi)容,可以關(guān)注野狗。