Java中Collection和Collections的主要区别是什么?

60

Java中Collection和Collections的主要区别是什么?


24
偶尔写一些Javadoc并不会对任何人造成伤害。 - Bozho
18个回答

80

Collection 是大多数集合类的基接口,而 Collections 则是一个实用工具类。我建议您阅读文档。


19
这将是: http://java.sun.com/javase/6/docs/api/java/util/Collections.html http://java.sun.com/javase/6/docs/api/java/util/Collection.html - omerkudat
1
或者针对Java 8:https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html - Ollie

24

您是否在询问Collections类和实现Collection接口的类之间的区别?

如果是这样,Collections类是一个实用程序类,具有对实现Collection接口的类的对象执行操作的静态方法。例如,Collections具有查找集合中最大元素的方法。

Collection接口定义了保存其他对象的结构共有的方法。List和Set是Collection的子接口,而ArrayList和HashSet是具体集合的示例。


17

4
其中之一根接口。 - Kevin Bourrillion
集合文档中的第一行:“集合层次结构中的根接口” - dahui

13

Collection,正如其javadoc所述,是“集合层次结构中的根接口。”这意味着任何以任何形式实现Java Collections FrameworkCollection类都是其一部分。

集合框架是Java对数据结构类的本地实现(具有实现特定属性),它表示一组某种相关的对象,因此可以称为集合。

Collections仅是一个实用方法类,用于执行某些操作,例如通过执行以下操作将线程安全添加到您的ArrayList实例:

List<MyObj> list = Collections.synchronizedList(new Arraylist<MyObj>());

在我看来,主要的区别是Collection是一个基础接口,你可以将其作为对象类型在代码中使用(尽管我不建议直接这样做),而Collections则提供了处理集合的有用操作。

当然,现在Iterable是集合层次结构的根接口。 - Tom Hawtin - tackline
2
我会说,Iterable是可迭代层次结构的根接口。 :) - Kevin Bourrillion
1
迭代器是对集合的一种广义视图,听起来怎么样? :) - Esko

12

Collection是一个接口,包含ListSetQueue

Collections是一个类,包含有用的方法,如Collections.sort()Collections.synchronizedlist()等。


3

Collection是Java集合框架的根接口。Collections是一个包含静态方法的实用工具类,例如Collections.sort()


2

集合是一个接口,用于将多个单独的对象表示为单个实体。

Collections是java.util包中存在的实用程序类,用于为集合对象定义多个实用程序方法(如排序、搜索)。


2

集合是一个接口,可以将多个单独的对象表示为一个实体。

集合是一个实用类,用于定义多个集合对象的实用方法。


2

集合(Collection),正如其javadoc所说的,“是集合层次结构中的根接口。”这意味着任何以任何形式实现Collection的类都是Java集合框架的一部分。

集合框架(Collections Framework)是Java对数据结构类的本地实现(具有实现特定属性),它表示一组某种相关的对象,因此可以称之为一个集合。

Collections只是一个实用方法类,用于执行某些操作,例如通过以下方式向ArrayList实例添加线程安全性:

List list = Collections.synchronizedList(new Arraylist());

我认为主要区别在于Collection是基本接口,您可以在代码中使用它作为对象类型(尽管我不建议直接使用),而Collections则仅提供处理集合的有用操作。


1
根据Java Doc,Collection是指:

集合层次结构中的根接口。集合表示一组对象,称为其元素。某些集合允许重复元素,而其他集合则不允许。有些是有序的,而其他则是无序的。JDK没有直接提供此接口的任何实现:它提供了更具体的子接口(如Set和List)的实现。通常使用此接口将集合传递并在希望最大通用性的地方进行操作。
Collections则是:

这个类仅包含操作或返回集合的静态方法。它包含在集合上操作的多态算法、“包装器”(它返回由指定集合支持的新集合)以及其他几种杂七杂八的东西。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接