根据http://docs.oracle.com/javase/tutorial/collections/interfaces/index.html有两个顶级接口,称为集合和映射。
将这两者分开的确切原因是什么?
是不是所有键值数据结构都实现了 map 接口,而所有其他数据结构都实现了 collections 接口?
根据http://docs.oracle.com/javase/tutorial/collections/interfaces/index.html有两个顶级接口,称为集合和映射。
将这两者分开的确切原因是什么?
是不是所有键值数据结构都实现了 map 接口,而所有其他数据结构都实现了 collections 接口?
对,那是正确的!检查所有List
类,然后检查所有Map
相关类。
并且有这个很棒的讨论,ob this question
视觉上
这是一个集合,通过这个你知道书在那里,它的顺序就像 0,1,2,3...
但是在Map中,书籍在内存中是无序的,但是为了计算机的方便,它有一个查找书籍的键,就像在图书馆中一样。
AMap
是具有映射到值的唯一键的结构。ACollection
只是一组没有特定键的多个值。
List
您可以在 a和 a之间进行相同的比较Map
以查看差异。这个 SO question处理这些差异。