Java BitSet类方法及实例

Java BitSet类方法及实例

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

BitSet类的方法解释如下。

  1. 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 – 为执行该操作而设置

  1. 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
  1. 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

  1. intersect() : java.util.BitSet.intersect()方法在目标BitSet和给定BitSet中的位都被设置时返回真。

语法:

public boolean intersects(BitSet set)

参数:
set – 与之相交的BitSet
返回: 如果给定的BitSet与目标BitSet相交,则返回true。

  1. 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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程