黑马程序员技术交流社区
标题:
Collection接口问题
[打印本页]
作者:
李振元
时间:
2011-12-11 12:57
标题:
Collection接口问题
本帖最后由 李振元 于 2011-12-11 20:40 编辑
List, Set可以继承Collection接口,但Map不能,求解释。。
作者:
吴上储
时间:
2011-12-11 13:11
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。
所有实现Collection接口的类都必须提供两个标准的构造函数:
无参数的构造函数用于创建一个空的Collection,有一个Collection参数的构造函数用于创建一个新的Collection。
如何遍历Collection中的每一个元素?不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代子,
使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下:
Iterator it = collection.iterator();
while(it.hasNext()) {
Object obj = it.next();
}
由Collection接口派生的两个接口是List和Set。
List和Set的区别:List必须保持元素特定的顺序,而Set不能有重复元素。
所以 :List和Set继承了Collection接口,而Map没有继承Collection接口
作者:
◇半度微凉
时间:
2011-12-11 13:39
本帖最后由 ◇半度微凉 于 2011-12-11 15:10 编辑
因为JDK不提供直接继承自Collection的类,Java JDK提供的类都是继承自Collection的"子接口",如: List和Set,它们是由Collection接口派生的两个接口类,也可以说它们继承Collection的,而Map没有继承Collection接口,它是独立的接口,所以不继承Collection接口
作者:
李明
时间:
2011-12-11 18:24
Collection是 Collection层次结构 中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。
Set是一个不包含重复元素的 collection。更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。正如其名称所暗示的,此接口模仿了数学上的 set 抽象。
List是有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
与 set 不同,列表通常允许重复的元素。更确切地讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和 e2,并且如果列表本身允许 null 元素的话,通常它们允许多个 null 元素。难免有人希望通过在用户尝试插入重复元素时抛出运行时异常的方法来禁止重复的列表,但我们希望这种用法越少越好。
Map是将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。映射顺序 定义为迭代器在映射的 collection 视图上返回其元素的顺序。某些映射实现可明确保证其顺序,如 TreeMap 类;另一些映射实现则不保证顺序,如 HashMap 类。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2