Java BitSet类方法及实例
BitSet class methods in Set 3.
/ / | | | \ \
and notand flip isEmpty equal get intersect
BitSet类的方法解释如下。
- and / notand : java.util.BitSet.and()和java.util.BitSet.notand()方法是一个java.util.Bitset类方法。
.and()方法对比特集(目标)与作为参数传递的比特集进行逻辑AND操作。这将返回一个位(set),当且仅当被操作的两个位都为真。
.notand()方法–所有那些有它相应的位–设置的位都用这个方法清除。
语法:
public void and(BitSet bitset)
或者
public void andNot(BitSet bitste)
参数:
bitset – 为执行该操作而设置
- 2.equal : java.util.BitSet.equal()方法在比较两个bitset时起作用。它通过比较一个对象和另一个对象来实现。
语法:
public boolean equals(Object o)
参数:
o – 与之比较的对象
覆盖: 物体类中的等价物
返回:如果对象相同则为真,否则为假。
3.get() : java.util.BitSet.get()方法创建一个新的BitSet,其元素来自给定的Bitset,其位置从_Index(包容)到_Index(排斥)。
语法:
public BitSet get(int from_Index, int to_Index)
参数:
from_Index – 要包括的BitSet的第一个位的索引
to_Index – 要包括的BitSet的最后一位的索引。
抛出:
IndexOutOfBoundsException – 如果from_Index是负数,或者to_Index是负数。或者 from_Index 大于 to_Index
**Java代码解释了and()、notand()、equal()、get()方法的使用。
// Java program explaining BitSet class methods
// and(), notand(), equal(), get()
import java.util.*;
public class GFG
{
public static void main(String[] args)
{
BitSet bs1 = new BitSet();
BitSet bs2 = new BitSet();
// assign values to bs1 using set()
bs1.set(7);
bs1.set(1);
bs1.set(2);
bs1.set(4);
bs1.set(3);
bs1.set(6);
// assign values to bs2
bs2.set(4);
bs2.set(6);
bs2.set(3);
bs2.set(9);
bs2.set(2);
// Printing the Bitsets
System.out.println("bs1 : " + bs1);
System.out.println("bs2 : " + bs2);
// use of get() to get index 3 to 6 of bs1
System.out.println("\nUse of get() on bs1 : "
+ bs1.get(1,4));
// use of get() to get index 1 to 4 of bs2
System.out.println("Use of get() on bs2 : "
+ bs2.get(1,4));
// perform not operation in b/w the sets
bs1.andNot(bs2);
System.out.println("\nNot b/w bs1 and bs2 : " + bs1);
// perform and operation between two bitsets
bs1.and(bs2);
System.out.println("And b/w bs1 and bs2 : " + bs1);
// equal() method to compare the bs1 and bs2
if (bs1.equals(bs2))
System.out.println("\nUsing equal method : Equal");
else
System.out.println("\nUsing equal method : Not Equal");
}
}
输出:
bs1 : {1, 2, 3, 4, 6, 7}
bs2 : {2, 3, 4, 6, 9}
Use of get() on bs1 : {0, 1, 2}
Use of get() on bs2 : {1, 2}
Not b/w bs1 and bs2 : {1, 7}
And b/w bs1 and bs2 : {}
Using equal method : Not Equal
- flip() :java.util.BitSet.flip(from_Index, to_Index)**方法将从给定的from_Index(包括)到指定的to_Index(不包括)的每个比特设置为当前值的赞美。
语法:
public void flip(int from_Index, int to_Index)
参数:
from_Index – 要翻转的BitSet的第一个位的索引
to_Index – 要翻转的BitSet的最后一位的索引。
抛出:
IndexOutOfBoundsException – 如果from_Index是负数,或者to_Index是负数。 或者 from_Index 大于 to_Index
- intersect() : java.util.BitSet.intersect()方法在目标BitSet和给定BitSet中的位都被设置时返回真。
语法:
public boolean intersects(BitSet set)
参数:
set – 与之相交的BitSet
返回: 如果给定的BitSet与目标BitSet相交,则返回true。
- isEmpty() : java.util.BitSet.isEmpty()**方法是否有任何位,在给定的Bitset中被设置为true或不。
语法:
public boolean isEmpty()
返回:布尔值,表示给定的BitSet是否为空。
Java代码解释了intersect()、isEmpty()、flip()方法的使用。
// Java program explaining BitSet class methods
// intersect(), isEmpty(), flip() methods
import java.util.*;
public class NewClass
{
public static void main(String[] args)
{
BitSet bs1 = new BitSet();
BitSet bs2 = new BitSet();
// assign values to bs1 using set()
bs1.set(7);
bs1.set(1);
bs1.set(2);
bs1.set(4);
bs1.set(3);
bs1.set(6);
// assign values to bs2
bs2.set(4);
bs2.set(6);
bs2.set(3);
bs2.set(9);
bs2.set(2);
// Printing the Bitsets
System.out.println("bs1 : " + bs1);
System.out.println("bs2 : " + bs2);
System.out.println("");
// use of intersect() to check if the bitsets
// intersects
System.out.println("Using intersect() : "
+ bs2.intersects(bs1));
// use of flip() from_index - 1 to_index - 5
bs1.flip(1,5);
System.out.println("\nbs1 using flip : " + bs1);
// use of flip() from_index - 2 to_index - 4
bs2.flip(2,4);
System.out.println("bs2 using flip : " + bs2);
System.out.println("");
// use of isEmpty() to check if bitsets are empty
System.out.println("Use of isEmpty() : "
+ bs1.isEmpty());
System.out.println("Use of isEmpty() : "
+ bs2.isEmpty());
}
}
输出:
bs1 : {1, 2, 3, 4, 6, 7}
bs2 : {2, 3, 4, 6, 9}
Using intersect() : true
bs1 using flip : {6, 7}
bs2 using flip : {4, 6, 9}
Use of isEmpty() : false
Use of isEmpty() : false