Java 获取BiSet实例的长度
我有一个函数,它以BiSet对象作为参数。我有以下几点Java 获取BiSet实例的长度,java,bitset,Java,Bitset,我有一个函数,它以BiSet对象作为参数。我有以下几点 public static void(String [] args) { BitSet test = new BitSet(15); Store(test); } public void Store (BitSet a) { boolean [] temp = new boolean[a.length()](); System.out.println(temp.length); } 问题是我的temp或a的长度
public static void(String [] args)
{
BitSet test = new BitSet(15);
Store(test);
}
public void Store (BitSet a)
{
boolean [] temp = new boolean[a.length()]();
System.out.println(temp.length);
}
问题是我的temp或a的长度是64。如何获得传递到函数库的对象实例测试的实际长度(15)?您不能。报告说:
创建一个位集,其初始大小足以显式表示索引范围在0
到nbits-1
之间的位
无法保证初始大小不会大于请求的大小。事实上,nbit
在构造函数完成时丢失
但是没有理由需要实际代码中的初始大小。你不能。报告说:
创建一个位集,其初始大小足以显式表示索引范围在0
到nbits-1
之间的位
无法保证初始大小不会大于请求的大小。事实上,nbit
在构造函数完成时丢失
但是没有理由需要实际代码中的初始大小。您的
位集可能没有15位的长度。确保它可以容纳15位。什么是“实际长度”,它与长度有什么不同?位集没有明确的大小;它只能报告设置的最高位。是的,但当我有temp.length时,我有64位,而不是15位。我可以设置第10位,但仍然希望temp的长度为15位(我可以稍后设置其他位)。您的位集
可能没有15位的长度。确保它可以容纳15位。什么是“实际长度”,它与长度有什么不同?位集没有明确的大小;它只能报告设置的最高位。是的,但当我有temp.length时,我有64位,而不是15位。我可以设置第10位,但仍然希望temp的长度为15位(我可以稍后设置其他位),如果这不可能,是否还有其他数据结构可以使用,并且可以有效地应用(设置、或、和XOR)(我正在考虑类似C#中的位数组的东西)@用户3841581您可以使用简单的int
或long
。但你不会得到15个比特。现在还不清楚你为什么会想要它。问题不是得到15位,而是有一个布尔数组,我可以在上面高效地执行我前面在一个高效的例子中提到的操作way@user3841581那么BitSet
就可以了。但是我想保留一个特定的大小,因为我有一些基于位集长度的循环。这是我的问题如果这不可能,是否还有其他数据结构我可以使用并且可以有效地应用(设置、或、和、XOR)(我在考虑类似C#中的BitArray的东西)@user3841581您可以使用一个简单的int
或long
。但你不会得到15个比特。现在还不清楚你为什么会想要它。问题不是得到15位,而是有一个布尔数组,我可以在上面高效地执行我前面在一个高效的例子中提到的操作way@user3841581那么BitSet
就可以了。但是我想保留一个特定的大小,因为我有一些基于位集长度的循环。这是我的问题