当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java BitSet flip()用法及代码示例


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 flip() method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。