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