Java 中的 BitSet 类函数

首页 / Java入门教程 / Java 中的 BitSet 类函数

BitSet类创建一种特殊的数组,其中包含位值, BitSet数组可以根据需要增加大小,这使其类似于位向量,这是一个旧类,但已在Java 2版本1.4中进行了重新设计。

BitSet定义以下两个构造函数。

Sr.No.Constructor & Remark
1

BitSet()

该构造函数创建一个默认对象。

2

BitSet(int size)

此构造函数允许您指定其初始大小,即它可以容纳的位数。所有位均初始化为零。

BitSet实现Cloneable接口并定义下表中列出的方法-

Sr.No.Method & Remark
1

void and(BitSet bitSet)

将调用BitSet对象的内容与bitSet指定的内容进行"与"运算。

2

void andNot(BitSet bitSet)

对于bitSet中的每个1位,将清除调用BitSet中的相应位。

3

int crdinality()

返回调用对象中设置的位数。

4

void clear()

将所有位清零。

5

void clear(int index)

将索引指定的位清零。

6

void clear(int startIndex,int endIndex)

将从startIndex到endIndex的位清零。

7

Object clone()

复制调用BitSet对象。

8

boolean equals(Object bigSet)

如果调用位集等于在bitSet中传递的位,则返回true。否则,该方法返回false。

链接:https://www.learnfk.comhttps://www.learnfk.com/java/java-bitset-class.html

来源:LearnFk无涯教程网

9

void flip(int index)

反转索引指定的位。

10

void flip(int startIndex,int endIndex)

将位从startIndex反转为endIndex。

11

boolean get(int index)

返回指定索引处的位的当前状态。

12

BitSet get(int startIndex,int endIndex)

返回一个BitSet,其中包含从startIndex到endIndex的位。

13

int hashCode()

返回调用对象的hashCode。

14

boolean intersects(BitSet bitSet)

如果调用对象和bitSet中的至少一对对应位为1,则返回true。

15

boolean isEmpty()

如果调用对象中的所有位均为零,则返回true。

16

int length()

返回保存调用BitSet的内容所需的位数。

17

int nextClearBit(int startIndex)

从startIndex指定的索引开始,返回下一个清除位(即下一个零位)的索引。

18

int nextSetBit(int startIndex)

从startIndex指定的索引开始,返回下一个设置位(即下一个1位)的索引。如果未设置任何位,则返回-1。

19

void or(BitSet bitSet)

将调用BitSet对象的内容与bitSet指定的内容进行"或"运算。

20

void set(int index)

设置索引指定的位。

21

void set(int index,boolean v)

将index指定的位设置为v中传递的值。True设置该位,false清除该位。

22

void set(int startIndex,int endIndex)

设置从startIndex到endIndex的位。

23

void set(int startIndex,int endIndex,布尔v)

设置从startIndex到endIndex的位,直到v中传递的值。true设置位,false清除位。

24

int size()

返回调用BitSet对象中的位数。

25

String toString()

返回与调用BitSet对象等效的字符串。

26

void xor(BitSet bitSet)

X将调用BitSet对象的内容与bitSet指定的内容进行"或"运算。输出放入调用对象中。

BitSet 示例

以下程序说明了此数据结构支持的几种方法-

无涯教程网

import java.util.BitSet;
public class BitSetDemo {

  public static void main(String args[]) {
      BitSet bits1=new BitSet(16);
      BitSet bits2=new BitSet(16);
      
      //设置一些位
      for(int i=0; i < 16; i++) {
         if((i % 2) == 0) bits1.set(i);
         if((i % 5) != 0) bits2.set(i);
      }
     
      System.out.println("Initial pattern in bits1: ");
      System.out.println(bits1);
      System.out.println("\nInitial pattern in bits2: ");
      System.out.println(bits2);

      //与位
      bits2.and(bits1);
      System.out.println("\nbits2 AND bits1: ");
      System.out.println(bits2);

      //或位
      bits2.or(bits1);
      System.out.println("\nbits2 OR bits1: ");
      System.out.println(bits2);

      //异或位
      bits2.xor(bits1);
      System.out.println("\nbits2 XOR bits1: ");
      System.out.println(bits2);
   }
}

这将产生以下输出-

Initial pattern in bits1:
{0, 2, 4, 6, 8, 10, 12, 14}

Initial pattern in bits2:
{1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14}

bits2 AND bits1:
{2, 4, 6, 8, 12, 14}

bits2 OR bits1:
{0, 2, 4, 6, 8, 10, 12, 14}

bits2 XOR bits1:
{}

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

深入拆解Java虚拟机 -〔郑雨迪〕

Go语言核心36讲 -〔郝林〕

从0开发一款iOS App -〔朱德权〕

架构实战案例解析 -〔王庆友〕

Go 并发编程实战课 -〔晁岳攀(鸟窝)〕

零基础入门Spark -〔吴磊〕

网络排查案例课 -〔杨胜辉〕

结构思考力 · 透过结构看思考 -〔李忠秋〕

AI大模型企业应用实战 -〔蔡超〕

好记忆不如烂笔头。留下您的足迹吧 :)