Open In App

BitSet class methods in Java with Examples | Set 3

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report
                       BitSet class methods in Set 3.
               /      /      |       |     |       \      \
            and  notand    flip  isEmpty  equal   get   intersect

BitSet class methods in Java with Examples | Set 2

BitSet class methods are explained as follows :

  1. and / notand : java.util.BitSet.and() and java.util.BitSet.notand() method is a java.util.Bitset class method.
    .and() method performs logical AND operation of bit set(target) with the bit set passed as an argument. This will return a bit (set) if and only if both the bits that are being operated are true.
    .notand() method – All those bits having it’s corresponding bit – Set are cleared using this method

    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() method plays its role in comparing two bitset. It does so by comparing an object with other.
    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() method creates a new BitSet with elements from the given Bitset having positions from from_Index (inclusive) to_Index(exclusive).
    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
    
  4. Java code explaining the use of and(), notand(), equal(), get() methods.




    // 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");
        }
    }

    
    

    Output:

    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
    
  5. flip() : java.util.BitSet.flip(from_Index, to_Index) method sets each bit from the given from_Index (inclusive) to the specified to_Index (exclusive) to current value’s compliment.
    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
    
  6. intersect() : java.util.BitSet.intersect() method returns true if both the bits in target BitSet and the given BitSet are set.
    Syntax:
    public boolean intersects(BitSet set)
    Parameters:
    set - BitSet to intersect with
    Returns: true if the given BitSet intersects the target BitSet
    
  7. isEmpty() : java.util.BitSet.isEmpty() method whether there is any bit, that is set to true or not in the given Bitset.
    Syntax:
    public boolean isEmpty()
    Return: boolean indicating whether the given BitSet is empty
    
  8. Java code explaining the use of intersect(), isEmpty(), flip() methods.




    // 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());
        }
    }

    
    

    Output:

    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
    

    References :
    https://docs.oracle.com/javase/7/docs/api/java/util/BitSet.html



    Last Updated : 16 Aug, 2018
    Like Article
    Save Article
    Previous
    Next
    Share your thoughts in the comments
Similar Reads