Collection
和List
在Java中有什么区别?应该在何时使用哪种?
Collection
和List
在Java中有什么区别?应该在何时使用哪种?
首先:List
是Collection
的一种。但它是一种专门的Collection
。
Collection
就是一个项的集合。您可以添加、删除、迭代和查询其中有多少项。
List
将定义的一系列内容的信息添加到其中:您可以获取位置为n的元素,可以在位置n添加元素,也可以删除位置为n的元素。
在Collection
中,您无法这样做:“此集合中的第5个元素”未定义,因为没有定义的顺序。
还有其他专门的Collections,例如Set
,它添加了一项功能,即它永远不会包含相同的元素。
Collection
是 Java 集合层次结构的根接口。 List
是有序集合的一个子接口,其他子接口包括存储准备进行处理元素(例如堆栈)的 Queue
。
下图演示了不同 Java 集合类型之间的关系:
Map
不是一个Collection
。 - giannis christofakisJava API是最好的解答
集合(Collection)
在集合层次结构中,根接口。集合表示一组对象,其称为元素。某些集合允许重复元素,而其他集合不允许。有些是有序的,而其他则是无序的。JDK没有提供此接口的任何直接实现:它提供了更多特定子接口如Set和List的实现。该接口通常用于在需要最大通用性时传递集合并对它们进行操作。
列表(List)(扩展自集合)
一个有序的集合(也称为序列)。该接口的用户有精确控制每个元素在列表中插入的位置。用户可以通过它们的整数索引(在列表中的位置)访问元素,并在列表中搜索元素。
与集合不同,列表通常允许重复元素。更正式地说,列表通常允许成对的元素e1和e2,使得e1.equals(e2),如果它们允许空元素,则通常允许多个空元素。虽然可以想象某人希望通过在尝试插入它们时抛出运行时异常来禁止重复的列表,但我们预计这种用法很少见。
Collection是Java Collections层次结构的主要接口,List(Sequence)是定义有序集合的子接口之一。