Java.util.BitSet类中的方法及实例

Java.util.BitSet类中的方法及实例

Methods discussed in this post:
                       BitSet class methods.
               /      /     |      |       \       \
           set()  xor()  clone() clear()  length()  cardinality()
  1. set() :java.util.BitSet.set()方法是将指定索引处的位设置为指定的值。

语法:

public void set(int bitpos)
public void set(int bitpos, boolean val)

参数:
bitpos : 一个比特索引
val : 一个要设置的布尔值
返回:
抛出: IndexOutOfBoundsException – 如果指定的索引是负的

  1. clone() : java.util.BitSet.clone()方法克隆一个比特集,产生一个与之相等的新比特集。位集的克隆是另一个位集,它的位集与这个位集的位集完全一样,都是真。

语法:

public Object clone()

返回:此位的克隆设置

  1. cardinality : java.util.BitSet.cardinality()方法用于查找Bitset中元素的数量。

语法:

public int cardinality()

返回:该BitSet中被设置为 “true “的位数。

// Java program explaining BitSet class methods
// set(), clone(), cardinality()
import java.util.*;
public class NewClasss
{
    public static void main(String[] args)
    {
        BitSet bs1 = new BitSet();
        BitSet bs2 = new BitSet(8);
        BitSet bs3 = new BitSet();
  
        // assign values to bs1 using set()
        bs1.set(0);
        bs1.set(1);
        bs1.set(2);
        bs1.set(4);
  
        // assign values to bs2
        bs2.set(4);
        bs2.set(6);
        bs2.set(5);
  
        // Here we are using .clone() method to make
        // bs3 as bs1
        bs3 = (BitSet) bs1.clone();
  
        // Printing the 3 Bitsets
        System.out.println("bs1 : " + bs1);
        System.out.println("bs2 : " + bs2);
        System.out.println("bs3 cloned from bs1 : " + bs3);
  
        // Using .cardinality() method to print the no. of
        // elements of Bitset
        System.out.println("Cardinality of bs1 : " +
                                       bs1.cardinality());
        System.out.println("Cardinality of bs2 : " +
                                       bs2.cardinality());
    }
}

输出:

bs1 : {0, 1, 2, 4}
bs2 : {4, 5, 6}
bs3 cloned from bs1 : {0, 1, 2, 4}
Cardinality of bs1 : 4
Cardinality of bs2 : 3
  1. clear() : java.util.BitSet.clear()方法用于清除元素,即把所有的Bitset元素设置为假。

语法:

public void clear(int frompos,int topos)
public void clear(int bitIndex)
public void clear()

参数:
frompos – 第一个被清除的位的索引
topos – 最后一个要清除的位之后的索引
bitIndex – 要清除的位的索引
抛出:
IndexOutOfBoundsException – 如果pos值为负数或者frompos大于topos的话。

  1. xor() : java.util.BitSet.xor()方法对比特集进行逻辑Xor操作。
    这个比特集被修改,使其中的一个比特的值为真,当且仅当。

    • 该位最初的值为真,而参数中相应的位的值为假。
    • 该位最初的值是假的,而参数中的相应位的值是真的。

语法:

public void xor(BitSet set)

参数:
set – 我们需要对其进行操作的BitSet。

  1. length() : java.util.BitSet.length()方法返回比特集的逻辑大小。
    比特集中最高设置位的索引加1。如果比特集不包含任何设定位,则返回0。

语法:

public int length()

返回:
该比特集的逻辑大小

// Java program explaining BitSet class methods
//  xor(), length(), clear() 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);
  
        // use of length() method
        System.out.println("use of length() : " + bs1.length());
  
        // use of xor() to perform logical Xor operation
        bs1.xor(bs2);
        System.out.println("Use of xor() : " + bs1);
        bs2.xor(bs1);
        System.out.println("Use of xor() : " + bs2);
  
        // clear from index 2 to index 4 in bs1
        bs2.clear(1, 2);
        System.out.println("bs2 after clear method : " + bs2);
  
        // clear complete Bitset
        bs1.clear();
        System.out.println("bs1 after clear method : " + bs1);
    }
}

输出:

bs1 : {1, 2, 3, 4, 6, 7}
bs2 : {2, 3, 4, 6, 9}
use of length() : 8
Use of xor() : {1, 7, 9}
Use of xor() : {1, 2, 3, 4, 6, 7}
bs2 after clear method : {2, 3, 4, 6, 7}
bs1 after clear method : {}

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程