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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。