Java Bitset类

作者: 龍飝 | 来源:发表于2019-07-03 09:16 被阅读0次
import java.util.BitSet;

public class BitSetDemo {
    
    public static void main(String[] args) {
        BitSet bits1 = new BitSet(16);
        BitSet bits2 = new BitSet(16);
        
        // set some bits
        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);
        
        // AND bits
        bits2.and(bits1);
        System.out.println("\nbits2 AND bits1: ");
        System.out.println(bits2);
        
        // OR bits
        bits2.or(bits1);
         System.out.println("\nbits2 OR bits1: ");
         System.out.println(bits2);
    
         // XOR bits
         bits2.xor(bits1);
         System.out.println("\nbits2 XOR bits1: ");
         System.out.println(bits2);
        
    }
    
}

 

一个Bitset类创建一种特殊类型的数组来保存位值。BitSet中数组大小会随需要增加。这和位向量(vector of bits)比较类似。

这是一个传统的类,但它在Java 2中被完全重新设计。

BitSet定义了两个构造方法。

第一个构造方法创建一个默认的对象:BitSet()

第二个方法允许用户指定初始大小。所有位初始化为0。BitSet(int size)

1 void and(BitSet set)
对此目标位 set 和参数位 set 执行逻辑与操作。
2 void andNot(BitSet set)
清除此 BitSet 中所有的位,其相应的位在指定的 BitSet 中已设置。
3 int cardinality( )
返回此 BitSet 中设置为 true 的位数。
4 void clear( )
将此 BitSet 中的所有位设置为 false。
5 void clear(int index)
将索引指定处的位设置为 false。
6 void clear(int startIndex, int endIndex)
将指定的 startIndex(包括)到指定的 toIndex(不包括)范围内的位设置为 false。
7 Object clone( )
复制此 BitSet,生成一个与之相等的新 BitSet。
8 boolean equals(Object bitSet)
将此对象与指定的对象进行比较。
9 void flip(int index)
将指定索引处的位设置为其当前值的补码。
10 void flip(int startIndex, int endIndex)
将指定的 fromIndex(包括)到指定的 toIndex(不包括)范围内的每个位设置为其当前值的补码。
11 boolean get(int index)
返回指定索引处的位值。
12 BitSet get(int startIndex, int endIndex)
返回一个新的 BitSet,它由此 BitSet 中从 fromIndex(包括)到 toIndex(不包括)范围内的位组成。
13 int hashCode( )
返回此位 set 的哈希码值。
14 boolean intersects(BitSet bitSet)
如果指定的 BitSet 中有设置为 true 的位,并且在此 BitSet 中也将其设置为 true,则返回 true。
15 boolean isEmpty( )
如果此 BitSet 中没有包含任何设置为 true 的位,则返回 true。
16 int length( )
返回此 BitSet 的"逻辑大小":BitSet 中最高设置位的索引加 1。
17 int nextClearBit(int startIndex)
返回第一个设置为 false 的位的索引,这发生在指定的起始索引或之后的索引上。
18 int nextSetBit(int startIndex)
返回第一个设置为 true 的位的索引,这发生在指定的起始索引或之后的索引上。
19 void or(BitSet bitSet)
对此位 set 和位 set 参数执行逻辑或操作。
20 void set(int index)
将指定索引处的位设置为 true。
21 void set(int index, boolean v)
将指定索引处的位设置为指定的值。
22 void set(int startIndex, int endIndex)
将指定的 fromIndex(包括)到指定的 toIndex(不包括)范围内的位设置为 true。
23 void set(int startIndex, int endIndex, boolean v)
将指定的 fromIndex(包括)到指定的 toIndex(不包括)范围内的位设置为指定的值。
24 int size( )
返回此 BitSet 表示位值时实际使用空间的位数。
25 String toString( )
返回此位 set 的字符串表示形式。
26

void xor(BitSet bitSet)
对此位 set 和位 set 参数执行逻辑异或操作。

相关文章

  • Java Bitset类

    一个Bitset类创建一种特殊类型的数组来保存位值。BitSet中数组大小会随需要增加。这和位向量(vector ...

  • Java Bitset类

    1 void and(BitSet set)对此目标位 set 和参数位 set 执行逻辑与操作。2 vo...

  • 2018-03-28bitset疑惑

    http://www.runoob.com/java/java-bitset-class.html import ...

  • BitSet实现原理及源码解析

    BitSet的结构原理 BitSet, 是Java对位集合抽象出的一种数据结构。它的内部维护了一个long数组,数...

  • Bitset改进你的程序质量

    1:Bitset介绍 BitSet 是用于存储二进制位和对二进制进行操作的 自动去重Java 数据结构, 此类实现...

  • java.util.BitSet-java中的位图类

    1. 构造方法和汇总统计方法 构造方法 汇总统计 size/length/isEmpty/cardinalit...

  • JAVA中BitSet

    JAVA中BitSet就是“位图”数据结构,根据“位图”的语义,数据的存在性可以使用bit位上的1或0来表示;一个...

  • JavaSE学习笔记——基本数据结构

    BitSet类BitSet,也就是位图,可以用比较紧凑的格式来表示给定范围的连续数据,最常见的应用就是那些需要对海...

  • Java初级笔记No.4(更新中)

    2018.7.27 1、Java的主要内置数据结构包括:枚举(Enumeration),位集合(BitSet),向...

  • C++ bitset用法

    bitset是C++语言的一个类库,用来方便地管理一系列的bit位。使用bitset需要导入头文件:#includ...

网友评论

    本文标题:Java Bitset类

    本文链接:https://www.haomeiwen.com/subject/kapfhctx.html