所以我知道Collections是一个实用程序类,Collection是一个基本接口.但是,我仍然不明白为什么集合中的方法不能放入集合中?这只是为了让事情变得更容易吗?
集合和集合中的方法之间是否存在差异?也许某些方法是由不同的集合实现的?因此对于更通用的方法,它们被抛入实用程序类集合中?
我想我只是很好奇你如何决定将哪些内容投入到收藏或收藏中?谁能提供一些这些例子?
Collection是一个界面.它定义了实现Collection的所有类必须遵守的契约:有size()
方法,有iterator()
方法等.
Collections是一个实用程序类,包含与各种集合实现相关的方法:创建一个空集,将任何列表转换为同步列表等.这些是不属于集合的方法:创建一个新集合将是愚蠢的集合为了能够创建一个空集,不是吗?
现在,使用Java 8,所有这些静态方法都可以是Collection接口的静态方法.但
这已经太晚了,因为自Java 2以来,Collections一直存在
它们中有很多它们最好保持分离,以避免混乱Collection界面,并使其不易理解.
但请注意,自Java 8以来,这些静态实用程序方法中的一些(或至少一个)成为实例方法,这要归功于具有默认方法的可能性:您现在可以使用list.sort(comparator)
而不是使用来对列表进行排序Collections.sort(list, comparator)
.当然,Collections.sort()
仍然存在:删除它会破坏数百万现有程序.