黑马程序员技术交流社区

标题: 关于集合类接口的比较的疑惑? [打印本页]

作者: Walking Walking    时间: 2013-3-18 21:39
标题: 关于集合类接口的比较的疑惑?
本帖最后由 徐盼盼 于 2013-3-19 08:16 编辑

在阅读张孝祥老师的《java就业培训的教程》中,关于集合类的比较是这样描述的:
Collection——对象之间没有指定的顺序,不允许重复元素。
Set——对象之间没有指定的顺序,不允许重复元素。
List——对象之间有指定的顺序,允许重复元素。

这三个接口间的继承关系如下:
Collection
        |----Set
        |----List

疑惑的地方是,既然Set和List继承Collection,Set和List的关系刚好相反,而Collection分别各取了Set和List的一部分?
如何证明Collection是对象之间没有指定的顺序,不允许重复元素?

作者: 谢洋    时间: 2013-3-18 21:46
而Collection分别各取了Set和List的一部分?这个可以看Collection API方法摘要
Collection是接口,只抽取功能,因为Set 与List的共同方法实现的方式实现相反
作者: 飞天小猪猪    时间: 2013-3-18 22:43
List集合是有角标的 所以可以对其进行排序,可以精确的控制每一个元素的插入位置。List序列允许满足e1.equals(e2) 的元素对 e1 和 e2。
而Set集合没有角标,不能精确控制其插入位置,Set不包含满足 e1.equals(e2) 的元素对 e1 和 e2,所以其集合中的元素就不能重复。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2