java.util.BitSet.or(BitSet set)
源代码:
public void or(BitSet set) {
if (this == set)
return;
int wordsInCommon = Math.min(wordsInUse, set.wordsInUse);
if (wordsInUse < set.wordsInUse) {
ensureCapacity(set.wordsInUse);
wordsInUse = set.wordsInUse;
}
// Perform logical OR on words in common
for (int i = 0; i < wordsInCommon; i++)
words[i] |= set.words[i];
// Copy any remaining words
if (wordsInCommon < set.wordsInUse)
System.arraycopy(set.words, wordsInCommon,
words, wordsInCommon,
wordsInUse - wordsInCommon);
// recalculateWordsInUse() is unnecessary
checkInvariants();
}
该方法没有返回值,具体使用如下示例:
import java.util.*;
public class BitSetDemo {
public static void main(String[] args) {
// create 2 bitsets
BitSet bitset1 = new BitSet(8);
BitSet bitset2 = new BitSet(8);
// assign values to bitset1
bitset1.set(0);
bitset1.set(1);
bitset1.set(2);
bitset1.set(3);
bitset1.set(4);
bitset1.set(5);
// assign values to bitset2
bitset2.set(2);
bitset2.set(4);
bitset2.set(6);
bitset2.set(8);
bitset2.set(10);
// print the sets
System.out.println("Bitset1:" + bitset1);
System.out.println("Bitset2:" + bitset2);
// perform a logical or between the two bitsets
bitset1.or(bitset2);
System.out.println("" + bitset1);
}
}
打印的结果为:
Bitset1:{0, 1, 2, 3, 4, 5}
Bitset2:{2, 4, 6, 8, 10}
{0, 1, 2, 3, 4, 5, 6, 8, 10}
可以看出 bitset1 和 bitset2 做了 或运算后,结果写入了 bitset1