所以我用初始化4.长度的比特集变量当我尝试播种此BitSet与随机的类nextBoolean方法。它给删除元素的效果。这极有可能我的经验不足,使用比特集更多。但据我的理解中位集合变量中的每个元素应该有一个随机的0或1。有人能看到它是什么,我做错了,并解释这是什么?
public void seedCandidate()
{
// Randomly sets bits in the candidate
for (int i = 0; i < numVals; i++)
truthVals.set(i, rn.nextBoolean());
}
当我将它输出给随机尺寸位集的长度。 truthVals的长度(比特集变量)应该是4这就是它得到了实例化到所以它应该是{0,1,2,3}。但是从方法上顶部的播种后我得到这些不同的长度。从不同的位集合的变量。
{1, 2, 3}, {0, 1, 2, 3}, {0}, {0, 2, 3}
public BitSet(int nbits)
创建一个位set它的初始大小足够大到nbits-1显式表示索引范围在0位。所有的位初始均为false。public int length()
返回此BitSet的“逻辑大小”:最高设置位的位集索引加1。返回零如果BitSet中不包含任何设置位。public int size()
返回的实际使用空间的位数由此BitSet表示位值。public int cardinality()
返回此BitSet中设置为true的位数。public void set(int bitIndex, boolean value)
将指定索引指定值位的。public String toString()
...那么,什么是混乱/意外?
考虑位集合的布尔数组。 (当然长的比特阵列的实现。)
set(7, true)
将“增加7所设定的,如果尚未添加”。set(7, false)
将“从一组,如果已经存在删除7。”不幸的命名方法,可能会引起混淆:
int cardinality()
真元件的数目int size()
容量(保留比特,“阵列尺寸”)