a Set和CollectionJava 之间是否有任何实际区别,除了a Collection可以包含两次相同的元素之外?他们有相同的方法.
(例如,是否Set给了我更多选项来使用接受Sets而不是Collections的库?)
编辑:我可以想到至少5种不同的情况来判断这个问题.其他人可以提出更多吗?我想确保我理解这里的细微之处.
Set或的论证的方法Collection.Collection更普遍,接受更多的输入可能性.(如果我正在设计一个特定的类或接口,我对我的消费者更好,如果我使用的话,对我的子类/实现者更严格Collection.)Set或的方法Collection.Set提供更多的保证Collection(即使它只保证不包括一个元素两次).(如果我正在设计一个特定的类或接口,我对我的消费者更好,如果我使用的话,对我的子类/实现者更严格Set.)Set或类的类Collection.与#2类似的问题.我的类/接口的用户得到更多的保证,子类/实现者有更多的责任.Set或界面的界面Collection.与#3非常相似.Set或的代码Collection.我不妨在这里使用Set; 我使用的唯一原因Collection是,如果我Collection从别人的代码中取回一个,或者我必须处理包含重复项的集合.Mic*_*ers 44
Collection也是超类型List,Queue,Deque,和其他人,所以它给你更多的选择.例如,我尝试将Collection库方法的参数用作不应明确依赖于某种类型集合的库方法.
通常,您应该使用正确的工具来完成工作.如果您不想要重复,请使用Set(或者SortedSet如果您想要订购,或者LinkedHashSet如果您想维护插入订单).如果要允许重复,请使用List,等等.
我想你已经想到了 - Set当你想要专门排除重复时使用. Collection通常是最小的公分母,指定接受/返回此API的API很有用,这样您可以在以后根据需要更改详细信息.但是,如果您的应用程序的详细信息需要唯一条目,请使用Set强制执行此操作.
另外值得考虑的是订单对您来说是否重要; 如果是,使用List,或者LinkedHashSet如果您关心秩序和独特性.
| 归档时间: |
|
| 查看次数: |
42695 次 |
| 最近记录: |