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。

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的位。

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

来源:LearnFk无涯教程网

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:
{}

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

技术教程推荐

白话法律42讲 -〔周甲徳〕

TensorFlow快速入门与实战 -〔彭靖田〕

Linux实战技能100讲 -〔尹会生〕

软件设计之美 -〔郑晔〕

分布式系统案例课 -〔杨波〕

跟月影学可视化 -〔月影〕

玩转Vue 3全家桶 -〔大圣〕

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

手把手带你写一个 MiniTomcat -〔郭屹〕

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