【发布时间】:2017-02-09 04:08:33
【问题描述】:
为什么java.util.BitSet 没有实现java.util.Set<Integer> 接口。尤其是当它可以很容易地做到这一点时。此外,BitSet 用于维护整数是否“打开或未打开”,Set 也完全相同。所以BitSet 是Set<Integer>。参考一些cmets说
现在看看BitSet的方法。该类的目的是对按特定顺序排列的位集合执行逻辑操作。
我仍然会说BitSet 是一个Set<Integer>,它还提供了额外的操作集。
【问题讨论】:
-
@f1sh 我确定我去过有争议的餐饮场所。
-
@djaqeel 你没有让 AndyTurner 的评论无关紧要,但我的。至少它的第二部分。但是现在你只是告诉每个人你编辑了你的问题,让它再次相关,耶!我评论的第一部分仍然是我的最终答案。
-
BitSet 是位向量,而 Set 是非重复对象的通用集合。声明“他们的行为不同,服务完全不同的目的。”从上面的热狗评论中总结得很好。
-
@djaqeel 我认为是出于性能原因。他们不希望人们通过通用接口使用这个实现(这基本上是一种优化),它会破坏使用它的好处。如有必要,可以在其周围编写一个包装器。
-
评论说“位向量”和“集合”是不同的,所以
BitSet不应该实现Set,现在我们有了EnumSet,它基本上和@987654332做同样的事情@ 但它仍然实现了Set...