Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果我们已经有了集合,为什么还要创建集合?_Java_Collections - Fatal编程技术网

Java 如果我们已经有了集合,为什么还要创建集合?

Java 如果我们已经有了集合,为什么还要创建集合?,java,collections,Java,Collections,所以我知道Collections是一个实用类,Collection是一个基本接口。然而,我仍然不明白为什么集合中的方法不能直接放入集合中?这只是为了让事情变得更容易吗 集合和集合中的方法之间是否存在差异?也许有些方法是由不同的集合实现的?因此,对于更通用的方法,它们被扔进了实用程序类集合 我想我只是好奇,你是如何决定把什么扔进集合还是给开发人员的集合?有人能举一些例子吗 集合是一个接口。它定义了实现集合的所有类都必须遵守的约定:具有size方法、迭代器方法等 Collections是一个实用类,

所以我知道Collections是一个实用类,Collection是一个基本接口。然而,我仍然不明白为什么集合中的方法不能直接放入集合中?这只是为了让事情变得更容易吗

集合和集合中的方法之间是否存在差异?也许有些方法是由不同的集合实现的?因此,对于更通用的方法,它们被扔进了实用程序类集合


我想我只是好奇,你是如何决定把什么扔进集合还是给开发人员的集合?有人能举一些例子吗

集合是一个接口。它定义了实现集合的所有类都必须遵守的约定:具有size方法、迭代器方法等

Collections是一个实用类,包含与各种集合实现相关的方法:创建空集、将任何列表转换为同步列表等。这些方法不属于集合:必须创建新集合才能创建空集是愚蠢的,不是吗

现在,使用Java8,所有这些静态方法都可以是集合接口的静态方法。但是

这已经太晚了,因为自Java2以来就存在集合 它们太多了,最好将它们分开保存,以避免混淆集合界面,并使其不易理解。
但是,请注意,自Java 8以来,由于有了默认方法,这些静态实用工具方法中的一些或至少一个成为了实例方法:您现在可以使用list.sortcomparator对列表进行排序,而不是使用Collections.sortlist、comparator。当然,Collections.sort仍然存在:删除它将破坏数百万个现有程序。

我很好奇,为什么您不能将Collections.sort中的方法放入Collectionlike.sort中。开发人员如何决定某些方法保留在集合中,由不同的集合(如ArrayList)具体实现,或者其他一些方法将放入集合中以供普遍使用?非常感谢。这正是我想要的答案。