- Java.util 包类
- Java.util - 首页
- Java.util - ArrayDeque
- Java.util - ArrayList
- Java.util - Arrays
- Java.util - BitSet
- Java.util - Calendar
- Java.util - Collections
- Java.util - Currency
- Java.util - Date
- Java.util - Dictionary
- Java.util - EnumMap
- Java.util - EnumSet
- Java.util - Formatter
- Java.util - GregorianCalendar
- Java.util - HashMap
- Java.util - HashSet
- Java.util - Hashtable
- Java.util - IdentityHashMap
- Java.util - LinkedHashMap
- Java.util - LinkedHashSet
- Java.util - LinkedList
- Java.util - ListResourceBundle
- Java.util - Locale
- Java.util - Observable
- Java.util - PriorityQueue
- Java.util - Properties
- Java.util - PropertyPermission
- Java.util - PropertyResourceBundle
- Java.util - Random
- Java.util - ResourceBundle
- Java.util - ResourceBundle.Control
- Java.util - Scanner
- Java.util - ServiceLoader
- Java.util - SimpleTimeZone
- Java.util - Stack
- Java.util - StringTokenizer
- Java.util - Timer
- Java.util - TimerTask
- Java.util - TimeZone
- Java.util - TreeMap
- Java.util - TreeSet
- Java.util - UUID
- Java.util - Vector
- Java.util - WeakHashMap
- Java.util 包其他内容
- Java.util - 接口
- Java.util - 异常
- Java.util - 枚举
- Java.util 有用资源
- Java.util - 有用资源
- Java.util - 讨论
Java BitSet 类
简介
Java BitSet 类创建了一种特殊的数组,用于保存位值。BitSet 数组可以根据需要增加大小。这使其类似于位向量。这是一个遗留类,但在 Java 2 版本 1.4 中进行了完全重新设计。
Java BitSet 类实现了一个根据需要增长的位向量。以下是关于 BitSet 的重要要点:
如果没有外部同步,BitSet 不适用于多线程使用。
集合中的所有位最初都具有 false 值。
向 BitSet 中任何方法传递 null 参数将导致 NullPointerException。
类声明
以下是java.util.BitSet 类的声明:
public class BitSet extends Object implements Cloneable, Serializable
类构造函数
序号 | 构造函数 & 描述 |
---|---|
1 | BitSet() 此构造函数创建一个新的位集。 |
2 | BitSet(int nbits) 此构造函数创建一个位集,其初始大小足以显式表示索引范围在 0 到 nbits-1 之间的位。 |
类方法
序号 | 方法 & 描述 |
---|---|
1 | void and(BitSet set)
此方法执行此目标位集与参数位集的逻辑 AND。 |
2 | void andNot(BitSet set)
此方法清除此 BitSet 中所有在指定 BitSet 中对应的位被设置的位。 |
3 | int cardinality()
此方法返回此 BitSet 中设置为 true 的位的数量。 |
4 | void clear()
此方法将此 BitSet 中的所有位设置为 false。 |
5 | Object clone()
此方法克隆此 BitSet 并生成一个与其相等的新 BitSet。 |
6 | boolean equals(Object obj)
此方法将此对象与指定对象进行比较。 |
7 | void flip(int bitIndex)
此方法将指定索引处的位设置为其当前值的补码。 |
8 | boolean get(int bitIndex)
此方法返回具有指定索引的位的value。 |
9 | int hashCode()
此方法返回具有指定索引的位的value。 |
10 | boolean intersects(BitSet set)
如果指定 BitSet 中有任何位设置为 true,并且在 此 BitSet 中也设置为 true,则此方法返回 true。 |
11 | boolean isEmpty()
如果此 BitSet 不包含任何设置为 true 的位,则此方法返回 true。 |
12 | int length()
此方法返回此 BitSet 的“逻辑大小”:BitSet 中最高设置位的索引加 1。 |
13 | int nextClearBit(int fromIndex)
此方法返回在指定起始索引或之后出现的第一个设置为 false 的位的索引。 |
14 | int nextSetBit(int fromIndex)
此方法返回在指定起始索引或之后出现的第一个设置为 true 的位的索引。 |
15 | void or(BitSet set)
此方法执行此位集与位集参数的逻辑 OR。 |
16 | int previousClearBit(int fromIndex)
此方法返回在指定起始索引或之前出现的第一个设置为 false 的位的索引。 |
17 | int previousSetBit(int fromIndex)
此方法返回在指定起始索引或之后出现的第一个设置为 true 的位的索引。 |
18 | void set(int bitIndex)
此方法将指定索引处的位设置为 true。 |
19 | int size()
此方法返回此 BitSet 实际用于表示位值的位数。 |
20 | IntStream stream()
此方法返回一个索引流,对于这些索引,此 BitSet 包含一个处于设置状态的位。 |
21 | byte[] toByteArray()
此方法返回一个新的位集,其中包含给定字节数组中的所有位。 |
22 | long[] toLongArray()
此方法返回一个新的长整型数组,其中包含此位集中的所有位。 |
23 | String toString()
此方法返回此位集的字符串表示形式。 |
24 | static BitSet valueOf(byte[] bytes)
此方法返回一个新的位集,其中包含给定字节数组中的所有位。 |
25 | void xor(BitSet set)
此方法执行此位集与位集参数的逻辑 XOR。 |
继承的方法
此类继承自以下类:
- java.util.Object
创建 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); // 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); } }
这将产生以下结果:
输出
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: {}