Java BitSet 类的 flip() 方法将位集设置为其补码。例如,如果一个位值包含一个真值,那么如果对其应用 flip() 操作,它将返回假。
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。
用法:
public void flip(int bitIndex)
public void flip(int fromIndex, int toIndex)
参数:
数据类型 | 参数 | 描述 |
---|---|---|
int | bitIndex | 它是要翻转的 BitSet 的索引。 |
int | fromIndex | 它是位翻转开始的 BitSet 的索引。 |
int | toIndex | 它是位翻转结束的 BitSet 的唯一索引。 |
返回值:
NA
异常:
方法 | 异常 |
---|---|
flip(int bitIndex) | 索引出界异常- 如果位集的指定索引为负。 |
flip(int fromIndex, int toIndex) | 索引出界异常= 如果 fromIndex 或 toIndex 中的任何一个为负,或者 fromIndex 大于 toIndex。 |
兼容版本:
Java 1.4 及以上
Java BitSet flip(int bitIndex) 方法示例
例子1
import java.util.BitSet;
public class BitSetFlipExample1 {
public static void main(String[] args) {
BitSet bitset = new BitSet();
bitset.set(0);
bitset.set(1);
bitset.set(2);
bitset.set(3);
System.out.println("bitset:"+bitset);
System.out.println("bitset value:"+bitset.get(0)+" "+bitset.get(1)+" "+bitset.get(2)+" "+bitset.get(3));
bitset.flip(1);
//printing bitset after flip index 1
System.out.println("bitset after flip index 1:"+bitset);
System.out.println("bitset value after flip index 1:"+bitset.get(0)+" "+bitset.get(1)+" "+bitset.get(2)+"
"+bitset.get(3));
}
}
输出:
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。
import java.util.BitSet;
public class BitSetFlipExample2 {
public static void main(String[] args) {
BitSet bitset = new BitSet();
bitset.set(0);
bitset.set(1);
bitset.set(2);
bitset.set(3);
System.out.println("bitset:"+bitset);
System.out.println("bitset value:"+bitset.get(0)+" "+bitset.get(1)+" "+bitset.get(2)+" "+bitset.get(3));
bitset.flip(-1);
//printing bitset after flip index 1
System.out.println("bitset after flip index 1:"+bitset);
System.out.println("bitset value after flip index 1:"+bitset.get(0)+" "+bitset.get(1)+" "+bitset.get(2)+"
"+bitset.get(3));
}
}
输出:
Exception in thread "main" java.lang.IndexOutOfBoundsException:bitIndex
Java BitSet flip(int fromIndex, int toIndex) 方法示例
例子3
import java.util.BitSet;
public class BitSetFlipExample3 {
public static void main(String[] args) {
BitSet bitset = new BitSet();
bitset.set(0);
bitset.set(1);
bitset.set(2);
bitset.set(3);
bitset.set(5);
System.out.println("bitset:"+bitset);
System.out.println("bitset value:"+bitset.get(0)+" "+bitset.get(1)+" "+bitset.get(2)+" "+bitset.get(3)+"
"+bitset.get(5));
bitset.flip(1,3);
//printing bitset after flip index 1 to 3
System.out.println("bitset after flip index 1,3:"+bitset);
System.out.println("bitset value after flip index 1,3:"+bitset.get(0)+" "+bitset.get(1)+" "+bitset.get(2)+"
"+bitset.get(3)+" "+bitset.get(5));
}
}
输出:
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。
import java.util.BitSet;
public class BitSetFlipExample4 {
public static void main(String[] args) {
BitSet bitset = new BitSet();
bitset.set(0);
bitset.set(1);
bitset.set(2);
bitset.set(3);
bitset.set(5);
System.out.println("bitset:"+bitset);
System.out.println("bitset value:"+bitset.get(0)+" "+bitset.get(1)+" "+bitset.get(2)+" "+bitset.get(3)+"
"+bitset.get(5));
bitset.flip(3,1);
//try to print bitset after flip index 3 to 1
System.out.println("bitset after flip index 3,1:"+bitset);
System.out.println("bitset value after flip index 3,1:"+bitset.get(0)+" "+bitset.get(1)+" "+bitset.get(2)+"
"+bitset.get(3)+" "+bitset.get(5));
}
}
输出:
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 clone()用法及代码示例
- Java BitSet previousClearBit()用法及代码示例
- Java BitSet toByteArray()用法及代码示例
- Java BitSet intersects()用法及代码示例
- Java BitSet isEmpty()用法及代码示例
- Java BitSet stream()用法及代码示例
- Java BitSet and()用法及代码示例
- Java BitSet previousSetBit()用法及代码示例
- Java BitSet size()用法及代码示例
- Java BitSet get()用法及代码示例
- Java BitSet set()用法及代码示例
- Java BitSet hashCode用法及代码示例
- Java BitSet clear()用法及代码示例
- Java BitSet toString()用法及代码示例
- Java BitSet nextSetBit()用法及代码示例
- Java BitSet valueOf()用法及代码示例
- Java BitSet length()用法及代码示例
- Java BitSet andNot()用法及代码示例
- Java BitSet xor()用法及代码示例
- Java BitSet nextClearBit()用法及代码示例
注:本文由纯净天空筛选整理自 Java BitSet flip() method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。