一、起因
今天在一個(gè)群里跟幾位朋友就“map是不是集合“”爭執(zhí)了起來;幾位朋友一致認(rèn)為map不是集合,他們說只有Collection接口下的才是集合,而我認(rèn)為Collection和Map下的實(shí)現(xiàn)類都是集合類。
二、發(fā)展
于是我開始在網(wǎng)上搜索一下,發(fā)現(xiàn)然并卵,沒有找到我想要的結(jié)果。于是乎,我翻開了書。在《java核心技術(shù) 卷一 第九版》一書中的569頁,13.3節(jié) 集合框架 的倒數(shù)第16行原文:“集合有兩個(gè)基本的接口:Collection和Map??梢允褂孟铝蟹椒ㄏ蚣现胁迦朐亍?div id="moiyehiw" class='imgcenter'>
另附
集合 包括了Collection和Map??真的嗎??
我又翻開了《java編程思想》,LOOK
《java編程思想》的第11章,第216頁,正數(shù)第13行,中原文:“……其中基本的類型是LIst、Set、Queue和Map。這些對(duì)象類型也稱為集合類,但由于Java類庫中使用了Collection這個(gè)名字來指代該類庫的一個(gè)特殊子集,所以我使用了范圍更廣的術(shù)語‘容器’稱呼它們……”
真相大白
原來如此
我們爭執(zhí)的'集合'大部分指的是Collection接口下的實(shí)現(xiàn)類,而在java核心技術(shù)卷一書上把Map也算做集合類的根接口之一,但是java編程思想里用了"集合類"和"容器"兩個(gè)稱呼進(jìn)行了說明和解釋,所以Map是否是集合類(集合框架)的根接口是一個(gè)翻譯問題!
書中所說的集合框架的總稱'集合類'和'容器'是一個(gè)概念?。?!
三、總結(jié)
Map是不是集合并不重要,重要的是在我們的工作和學(xué)習(xí)中應(yīng)該明確說明和指出集合
是指容器(即《java編程思想》中的'集合類') 還是指Collection接口下的實(shí)現(xiàn)類。
其實(shí),集合(容器)框架的結(jié)構(gòu)的理解和使用才是最重要的。
至于,Map是不是集合?
這個(gè)模棱兩可的問題的就不要鉆牛角尖啦~如果有人在你面前談起Map是不是集合,
請(qǐng)扶一下眼鏡,并回問一句他所說的"集合"是容器(集合框架)還是Collection接口