Why does Java `BitSet` not have `shiftLeft` and `shiftRight` functions?
Is there any particular reason why these are missing?

They do exist in `BigInteger`, but due to the immutable design pattern of `BigInteger` these are usually awfully slow. `BitSet` is much nicer because it is mutable, but I really miss the `shift` functions (`<<` and `>>>` for `long`s). For `BitSet`, an inplace shifting would also be useful, as well as cyclic rotation.

I have seen the reply to http://stackoverflow.com/questions/9008150/shifting-a-java-bitset (using `get(off, len)` for shifting; however this requires copying).

Don't get me wrong. I know where to report bugs. I'm just wondering if there was a particular *reason* to omit them, e.g. some design pattern or such a concept. In particular as they *are* included in `BigInteger`.
Why does Java `BitSet` not have `shiftLeft` and `shiftRight` functions?
===

Is there any particular reason why these are missing?

They do exist in `BigInteger`, but due to the immutable design pattern of `BigInteger` these are usually awfully slow. `BitSet` is much nicer because it is mutable, but I really miss the `shift` functions (`<<` and `>>>` for `long`s). For `BitSet`, an inplace shifting would also be useful, as well as cyclic rotation.

I have seen the reply to http://stackoverflow.com/questions/9008150/shifting-a-java-bitset (using `get(off, len)` for shifting; however this requires copying).

Don't get me wrong. I know where to report bugs. I'm just wondering if there was a particular *reason* to omit them, e.g. some design pattern or such a concept. In particular as they *are* included in `BigInteger`.