title: Why does Java `BitSet` not have `shiftLeft` and `shiftRight` functions?
body: <p>Is there any particular reason why these are missing?</p>
  
  <p>They do exist in <code>BigInteger</code>, but due to the immutable design pattern of <code>BigInteger</code> these are usually awfully slow. <code>BitSet</code> is much nicer because it is mutable, but I really miss the <code>shift</code> functions (<code>&lt;&lt;</code> and <code>&gt;&gt;&gt;</code> for <code>long</code>s). For <code>BitSet</code>, an inplace shifting would also be useful, as well as cyclic rotation.</p>
  
  <p>I have seen the reply to <a href="https://stackoverflow.com/questions/9008150/shifting-a-java-bitset">Shifting a Java BitSet</a> (using <code>get(off, len)</code> for shifting; however this requires copying).</p>
  
  <p>Don't get me wrong. I know where to report bugs. I'm just wondering if there was a particular <em>reason</em> to omit them, e.g. some design pattern or such a concept. In particular as they <em>are</em> included in <code>BigInteger</code>.</p>