Answers:
首先:a List
是一个Collection
。但是,它是专门的Collection
。
A Collection
就是这样:项目的集合。您可以添加内容,删除内容,遍历所有内容并查询其中有多少内容。
一个List
增加有关规定的东西,它的序列信息:你可以在获取位置的元素ñ,你可以在位置添加元素ñ,你可以在位置删除元素ñ。
在a中,Collection
您无法执行此操作:未定义“此集合中的第5个元素”,因为没有定义的顺序。
也有其他专门的Collection,例如a Set
,它添加了一个功能,它将永远不会包含相同的元素两次。
Collection
是java Collections层次结构的根接口。 List
是一个定义有序Collection的子接口,其他子接口 Queue
通常将存储准备好进行处理的元素(例如stack)。
下图演示了不同的Java集合类型之间的关系:
Map
不是Collection
。
Java API是最好的答案
采集
集合层次结构中的根接口。集合表示一组对象,称为其元素。一些集合允许重复的元素,而另一些则不允许。一些是有序的,而其他则是无序的。JDK不提供此接口的任何直接实现:它提供更特定的子接口(如Set和List)的实现。该接口通常用于传递集合,并在需要最大通用性的地方操作它们。
列表(扩展集合)
有序集合(也称为序列)。该界面的用户可以精确控制列表中每个元素的插入位置。用户可以通过其整数索引(列表中的位置)访问元素,并在列表中搜索元素。
与集合不同,列表通常允许重复的元素。更正式地讲,列表通常允许成对的元素e1和e2,使得e1.equals(e2),并且如果它们完全允许空元素,则它们通常允许多个空元素。并非不可想象的是,有人希望通过在用户尝试插入运行时异常时抛出运行时异常来实现禁止重复的列表,但是我们希望这种用法很少见。
List和Set是Collection的两个子类。
在列表中,数据按特定顺序排列。
在Set中,它不能包含两次相同的数据。
在Collection中,它只存储没有特定顺序的数据,并且可以包含重复数据。
Collection是List的超级接口,因此每个Java列表都是collection的实例。集合只能顺序地(且没有特定的顺序)迭代,而列表允许通过该get(int index)
方法访问某个位置的元素。