何时使用 Set vs. Collection?

12 浏览
0 Comments

何时使用 Set vs. Collection?

除了Collection可以包含相同的元素两次这一事实之外,Java中的SetCollection之间有什么实际区别吗?它们具有相同的方法。

(例如,Set是否为我提供了更多可以接受Set而不接受Collection的库的选项?)

编辑:我至少可以想到5种不同的情况来判断这个问题。还有其他人能想到更多吗?我想确保我理解这里的细微差别。

  1. 设计一个接受SetCollection类型参数的方法。 Collection更通用,可以接受更多的输入可能性。(如果我设计一个特定的类或接口,如果我使用Collection,我对我的消费者更友好,对我的子类/实现者更严格。)
  2. 设计一个返回SetCollection类型的方法。 Set提供比Collection更多的保证(即使只是保证不包含重复元素)。 (如果我设计一个特定的类或接口,如果我使用Set,我对我的消费者更友好,对我的子类/实现者更严格。)
  3. 设计一个实现SetCollection接口的类。与第2点类似的问题。我的类/接口的用户得到更多的保证,子类/实现者有更多的责任。
  4. 设计一个扩展SetCollection接口的接口。与第3点非常相似。
  5. 编写使用SetCollection的代码。在这里,我可能会使用Set;我使用Collection的唯一原因是如果我从别人的代码中得到一个Collection,或者如果我必须处理包含重复元素的集合。
0