谷歌在这里让我失望......我认为这将是一个非常简单的问答,但我以前找不到任何有关此事的讨论。
为什么Java Trove4J库不包含布尔基元集合?示例:TByteHashSet
存在,但TBooleanHashSet
不存在。
作为一种解决方法,我可以为true(1)和false(0)声明两个字节常量,但是拥有一个布尔基元集合会更方便。
答案 0 :(得分:2)
Eclipse Collections(以前称为GS Collections)有BooleanSet
,BooleanList
,BooleanStack
,BooleanBag
和带有布尔值的原始地图。有Mutable和Immutable版本。您可以找到BooleanIterable
here的所有子接口。不同原始容器的工厂类是here。
以下是使用BooleanLists工厂创建MutableBooleanList
和ImmutableBooleanList
的示例。
MutableBooleanList mutable = BooleanLists.mutable.with(true, false, true, false);
ImmutableBooleanList immutable = BooleanLists.immutable.with(true, false, true, false);
Assert.assertEquals(mutable, immutable);
注意:我是Eclipse Collections的提交者。
答案 1 :(得分:1)
我是作者,所以......
这样的 TBooleanHashSet 的用例是什么?您只能存储四种状态:
您可以使用EnumMap和一些代表您的状态的枚举轻松完成此操作。否则,最有效的方法可能是一点掩饰。
无论如何,还没有看到需要。 (注意: TBooleanList 可能有意义,但您可以使用 java.util.BitSet 。)
如果您有需要,请告诉我。