gpt4 book ai didi

java - 为什么 Java `BitSet` 没有 `shiftLeft` 和 `shiftRight` 函数?

转载 作者:搜寻专家 更新时间:2023-10-30 20:01:19 25 4
gpt4 key购买 nike

这些缺失是否有任何特殊原因?

它们确实存在于 BigInteger 中, 但由于 BigInteger 的不可变设计模式这些通常非常慢。 BitSet更好,因为它是可变的,但我真的很想念 shift函数( <<>>> 代表 long s)。对于 BitSet ,就地移位以及循环旋转也很有用。

我看到了Shifting a Java BitSet的回复(使用 get(off, len) 进行移位;但这需要复制)。

不要误会我的意思。我知道在哪里报告错误。我只是想知道是否有特定的原因忽略它们,例如一些设计模式或这样的概念。特别是因为它们包含在 BigInteger 中.

最佳答案

从概念上讲,BitSet 通常/经常用于跟踪大量设置,这样集合中的每个位都有特定的含义。因此,在这种情况下,移位操作毫无意义。

您显然已经找到了 BitSet 的另一个有用用途,但它超出了 BitSet 可能设想的范围。

关于java - 为什么 Java `BitSet` 没有 `shiftLeft` 和 `shiftRight` 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9101435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com