Map是不是集合?
一、起因
今天在一个群里跟几位朋友就“map是不是集合“”争执了起来;几位朋友一致认为map不是集合,他们说只有Collection接口下的才是集合,而我认为Collection和Map下的实现类都是集合类。
二、发展
于是我开始在网上搜索一下,发现然并卵,没有找到我想要的结果。于是乎,我翻开了书。在《java核心技术 卷一 第九版》一书中的569页,13.3节 集合框架 的倒数第16行原文:“集合有两个基本的接口:Collection和Map。可以使用下列方法向集合中插入元素……”
另附
集合 包括了Collection和Map??真的吗??
我又翻开了《java编程思想》,LOOK
《java编程思想》的第11章,第216页,正数第13行,中原文:“……其中基本的类型是LIst、Set、Queue和Map。这些对象类型也称为集合类,但由于Java类库中使用了Collection这个名字来指代该类库的一个特殊子集,所以我使用了范围更广的术语‘容器’称呼它们……”
真相大白
原来如此
我们争执的'集合'大部分指的是Collection接口下的实现类,而在java核心技术卷一书上把Map也算做集合类的根接口之一,但是java编程思想里用了"集合类"和"容器"两个称呼进行了说明和解释,所以Map是否是集合类(集合框架)的根接口是一个翻译问题!
书中所说的集合框架的总称'集合类'和'容器'是一个概念!!!
三、总结
Map是不是集合并不重要,重要的是在我们的工作和学习中应该明确说明和指出集合
是指容器(即《java编程思想》中的'集合类') 还是指Collection接口下的实现类。
其实,集合(容器)框架的结构的理解和使用才是最重要的。
至于,Map是不是集合?
这个模棱两可的问题的就不要钻牛角尖啦~如果有人在你面前谈起Map是不是集合,
请扶一下眼镜,并回问一句他所说的"集合"是容器(集合框架)还是Collection接口