如何在保留其长度的同时翻转 Java BitSet 中的所有位
How to flip all the bits in Java BitSet while preserving its length
如何翻转 Java BitSet
中的所有位,同时保持其长度?
例如,给定以下 BitSet:
BitSet.valueOf(new byte[] { 0b100111 })
// {0, 1, 2, 5}
是否有一种简单的方法来翻转所有位,同时保留 BitSet 长度(在上例中为 6)?
我想得到:
BitSet.valueOf(new byte[] { 0b011000 })
// { 3, 4 }
BitSet
有一个 flip(from, to)
method,它允许您翻转范围内的位:
yourBitSet.flip(0, length);
然而,您需要回答的问题是“长度”的实际含义。
假设您可以使用 length()
,您可以使用:
yourBitSet.flip(0, yourBitSet.length());
当然,由于这清除了最高位,yourBitSet
之后会有一个更小的length()
。
如何翻转 Java BitSet
中的所有位,同时保持其长度?
例如,给定以下 BitSet:
BitSet.valueOf(new byte[] { 0b100111 })
// {0, 1, 2, 5}
是否有一种简单的方法来翻转所有位,同时保留 BitSet 长度(在上例中为 6)?
我想得到:
BitSet.valueOf(new byte[] { 0b011000 })
// { 3, 4 }
BitSet
有一个 flip(from, to)
method,它允许您翻转范围内的位:
yourBitSet.flip(0, length);
然而,您需要回答的问题是“长度”的实际含义。
假设您可以使用 length()
,您可以使用:
yourBitSet.flip(0, yourBitSet.length());
当然,由于这清除了最高位,yourBitSet
之后会有一个更小的length()
。