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