不正確,java是單繼承的,如果頂層是抽象類(lèi),對(duì)于后面的代碼擴(kuò)展很不利的。而java的接口是多實(shí)現(xiàn)的,java官方對(duì)于Collection和set、List設(shè)計(jì)的也都是接口來(lái)設(shè)計(jì),符合了java的接口多少實(shí)現(xiàn)的特性。如果都是設(shè)計(jì)成抽象類(lèi),后面我們?cè)趯?shí)際開(kāi)發(fā)中,自己的類(lèi)就沒(méi)法實(shí)現(xiàn)了。具體它們的結(jié)構(gòu)如下:
Collection接口的接口對(duì)象的集合(單列集合)
├——-List接口:元素按進(jìn)入先后有序保存,可重復(fù)
│—————-├LinkedList接口實(shí)現(xiàn)類(lèi),鏈表,插入刪除,沒(méi)有同步,線程不安全
│—————-├ArrayList接口實(shí)現(xiàn)類(lèi),數(shù)組,隨機(jī)訪問(wèn),沒(méi)有同步,線程不安全
│—————-└Vector接口實(shí)現(xiàn)類(lèi)數(shù)組,同步,線程安全
│———————-└Stack是Vector類(lèi)的實(shí)現(xiàn)類(lèi)
└——-Set接口:僅接收一次,不可重復(fù),并做內(nèi)部排序
├—————-└HashSet使用hash表(數(shù)組)存儲(chǔ)元素
│————————└LinkedHashSet鏈表維護(hù)元素的插入次序
└—————-TreeSet底層實(shí)現(xiàn)為二叉樹(shù),元素排好序