在java中创建特定长度的位集

在java中创建特定长度的位集,java,c#,bitset,Java,C#,Bitset,我有一个函数,我想在其中执行诸如OR、AND、set等操作。我首先想到的是布尔数组,但问题是我不能对它们执行AND和OR运算,但我可以将特定元素设置为true。我还尝试使用BiSet,但问题是位集的最小大小是64位。我希望它存储一个特定数量的位15,例如,我可以稍后通过它进行迭代以获得它们的包含。在C语言中,有一个处理此类问题的BitArray类;Java似乎没有这样的功能。对此问题的任何建议都将不胜感激我认为你错了。允许任何数量的位;没有超过64位的限制。是的,位集可能在内部使用长值来存储这些

我有一个函数,我想在其中执行诸如OR、AND、set等操作。我首先想到的是布尔数组,但问题是我不能对它们执行AND和OR运算,但我可以将特定元素设置为true。我还尝试使用BiSet,但问题是位集的最小大小是64位。我希望它存储一个特定数量的位15,例如,我可以稍后通过它进行迭代以获得它们的包含。在C语言中,有一个处理此类问题的BitArray类;Java似乎没有这样的功能。对此问题的任何建议都将不胜感激

我认为你错了。允许任何数量的位;没有超过64位的限制。是的,位集可能在内部使用长值来存储这些位;但它并没有说您只能使用64位、128位等等

换句话说:当您为15位设置一个位集时,它将分配long[1];63位相同;如果您需要70位,它将分配long[2]

长话短说:这门课正是你想要的;我不认为任何其他的实现会比这更有效。

我认为你错了。允许任何数量的位;没有超过64位的限制。是的,位集可能在内部使用长值来存储这些位;但它并没有说您只能使用64位、128位等等

换句话说:当您为15位设置一个位集时,它将分配long[1];63位相同;如果您需要70位,它将分配long[2]


长话短说:这门课正是你想要的;我看不出任何其他实现能比这更高效。

为什么新的BitSet15不能满足您的需要?所以,真正有趣的问题更像是:是什么给了您这样的错误印象?@cdelmas,我这么说是因为,当我这样做时,例如:BitSet a=new BiSet15,在我调用a.length之后,我得到了64。为什么新的位集15不能满足你的需要?所以,真正有趣的问题更像是:是什么给了你那种错误的印象?@cdelmas,我这么说是因为,当我这样做的时候,例如:位集a=new BiSet15,当我调用a.length后,我得到了64。谢谢你的明确解释,我现在明白了。我还可以创建一个BiSet数组吗?如果可以,我该如何迭代它们呢?好的,也许你可以从阅读一些关于Java的书籍开始。你看,这不是一所编程学校,那里的人告诉你那些到处都有记录的东西。但是,嗯,;您将选择位集[]mySets=新位集[]{new BitSet5,new BitSet6,…}。但在2016年,您最有可能希望使用动态集合,如List mySets=new ArrayList。。。然后根据需要添加位集对象。但正如所说的:这是你通过学习学到的最基本的东西;不是问stackoverflow上的人。谢谢你的清楚解释,我现在明白了。我还可以创建一个BiSet数组吗?如果可以,我该如何迭代它们呢?好的,也许你可以从阅读一些关于Java的书籍开始。你看,这不是一所编程学校,那里的人告诉你那些到处都有记录的东西。但是,嗯,;您将选择位集[]mySets=新位集[]{new BitSet5,new BitSet6,…}。但在2016年,您最有可能希望使用动态集合,如List mySets=new ArrayList。。。然后根据需要添加位集对象。但正如所说的:这是你通过学习学到的最基本的东西;不是通过询问stackoverflow上的人。