📜  Java中的BitSet 类方法与示例|设置 3

📅  最后修改于: 2022-05-13 01:54:42.039000             🧑  作者: Mango

Java中的BitSet 类方法与示例|设置 3

BitSet class methods in Set 3.
               /      /      |       |     |       \      \
            and  notand    flip  isEmpty  equal   get   intersect

Java中的BitSet 类方法与示例|设置 2

BitSet 类方法解释如下:

  1. 和/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
    
  2. 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
    
  3. 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
    
  4. 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
    
  5. 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
    
  6. 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