Java Trove4J库(或其他)是否具有布尔基元集合?

时间:2015-08-27 02:37:45

标签: java trove4j

谷歌在这里让我失望......我认为这将是一个非常简单的问答,但我以前找不到任何有关此事的讨论。

为什么Java Trove4J库不包含布尔基元集合?示例:TByteHashSet存在,但TBooleanHashSet不存在。

作为一种解决方法,我可以为true(1)和false(0)声明两个字节常量,但是拥有一个布尔基元集合会更方便。

2 个答案:

答案 0 :(得分:2)

Eclipse Collections(以前称为GS Collections)有BooleanSetBooleanListBooleanStackBooleanBag和带有布尔值的原始地图。有Mutable和Immutable版本。您可以找到BooleanIterable here的所有子接口。不同原始容器的工厂类是here

以下是使用BooleanLists工厂创建MutableBooleanListImmutableBooleanList的示例。

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 的用例是什么?您只能存储四种状态:

  • true&假

您可以使用EnumMap和一些代表您的状态的枚举轻松完成此操作。否则,最有效的方法可能是一点掩饰。

无论如何,还没有看到需要。 (注意: TBooleanList 可能有意义,但您可以使用 java.util.BitSet 。)

如果您有需要,请告诉我。