Java中的BitSet 类方法与示例|设置 3
BitSet class methods in Set 3.
/ / | | | \ \
and notand flip isEmpty equal get intersect
Java中的BitSet 类方法与示例|设置 2
BitSet 类方法解释如下:
- 和/notand: Java.util.BitSet.and()和Java.util.BitSet.notand()方法是Java.util.Bitset 类方法。
.and() 方法执行位集(目标)的逻辑与运算,位集作为参数传递。当且仅当正在操作的两个位都为真时,这将返回一个位(设置)。
.notand() 方法 – 所有具有相应位的位 – 使用此方法清除设置Syntax: public void and(BitSet bitset) or public void andNot(BitSet bitste) Parameters: bitset - set to perform the operation
- equal : Java.util.BitSet.equal()方法在比较两个位集时发挥作用。它通过将一个对象与其他对象进行比较来做到这一点。
Syntax: public boolean equals(Object o) Parameters: o - the object to compare with Overrides: equals in class Object Return: if object are same then true; otherwise false
- get() : Java.util.BitSet.get()方法创建一个新的 BitSet,其中的元素来自给定的 Bitset,位置从 from_Index(包括)到_Index(不包括)。
Syntax: public BitSet get(int from_Index, int to_Index) Parameters: from_Index - index of the first bit of given BitSet to include to_Index - index after the last bit of the BitSet to include Throws: IndexOutOfBoundsException - if from_Index is negative, or to_Index is negative, or from_Index is larger than 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(不包括)的每个位设置为当前值的补充。
Syntax: public void flip(int from_Index, int to_Index) Parameters: from_Index - index of the first bit of the given BitSet to flip to_Index - index after the last bit of the given BitSet to flip Throws: IndexOutOfBoundsException - if from_Index is negative, or to_Index is negative, or from_Index is larger than to_Index
- intersect() :如果设置了目标 BitSet 和给定 BitSet 中的位,则Java.util.BitSet.intersect()方法返回 true。
Syntax: public boolean intersects(BitSet set) Parameters: set - BitSet to intersect with Returns: true if the given BitSet intersects the target BitSet
- isEmpty() : Java.util.BitSet.isEmpty()方法是否有任何位,在给定的位集中是否设置为真。
Syntax: public boolean isEmpty() Return: boolean indicating whether the given BitSet is empty
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
参考 :
https://docs.oracle.com/javase/7/docs/api/java Java