Java BitSet flip() 方法

2025 年 1 月 7 日 | 阅读 3 分钟

Java **BitSet** 类的 flip() 方法将位集设置为其补集。例如,如果一个位值包含 true,那么如果你对它应用 flip() 操作,它将返回 false。

BitSet 类中有两个重载的 flip() 方法。这些方法根据其参数进行区分。

1. Java BitSet flip(int bitIndex) 方法

flip(int bitIndex) 方法将指定索引处的位设置为其补集。

2. Java BitSet flip(int fromIndex, int toIndex) 方法

flip(int fromIndex, int toIndex) 方法将从指定的包含 fromIndex 到不包含 toIndex 的每个位值设置为其补集。

语法

参数

数据类型参数描述
intbitIndex这是要翻转的 BitSet 的索引。
intfromIndex这是 BitSet 中位翻转开始的索引。
inttoIndex这是 BitSet 中位翻转结束的不包含的索引。

返回值

不适用

Exception

方法Exception
flip(int bitIndex)IndexOutOfBoundsException - 如果指定的位集索引为负。
flip(int fromIndex, int toIndex)IndexOutOfBoundsException = 如果 fromIndex 或 toIndex 中的任何一个为负,或者 fromIndex 大于 toIndex。

兼容版本

Java 1.4 及以上版本

Java BitSet flip(int bitIndex) 方法示例

示例 1

输出

bitset: {0, 1, 2, 3}
bitset value: true true true true
bitset after flip index 1: {0, 2, 3}
bitset value after flip index 1: true false true true

示例 2

如果我们提供负索引值,flip(int bitIndex) 方法会抛出 IndexOutOfBoundsException。

输出

Exception in thread "main" java.lang.IndexOutOfBoundsException: bitIndex < 0: -1
	at java.util.BitSet.flip(Unknown Source)
	at BitSetFlipExample2.main(BitSetFlipExample2.java:12)
bitset: {0, 1, 2, 3}
bitset value: true true true true

Java BitSet flip(int fromIndex, int toIndex) 方法示例

示例 3

输出

bitset: {0, 1, 2, 3, 5}
bitset value: true true true true true
bitset after flip index 1,3: {0, 3, 5}
bitset value after flip index 1,3: true false false true true

示例 4

如果 toIndex 大于 fromIndex,flip(int fromIndex, int toIndex) 方法会抛出 IndexOutOfBoundsException。

输出

Exception in thread "main" java.lang.IndexOutOfBoundsException: fromIndex: 3 > toIndex: 1
	at java.util.BitSet.checkRange(Unknown Source)
	at java.util.BitSet.flip(Unknown Source)
	at BitSetFlipExample4.main(BitSetFlipExample4.java:13)
bitset: {0, 1, 2, 3, 5}
bitset value: true true true true true

下一个主题Java-bitset-xor-method