簡體   English   中英

Java Trove4J 庫(或其他庫)是否具有布爾原始集合?

[英]Does Java Trove4J library (or another) have boolean primitive collections?

谷歌在這里讓我失望了......我認為這將是一個非常簡單的問答,但我找不到以前對此事的任何討論。

Java Trove4J 庫不包含布爾原始集合是否有原因? 示例: TByteHashSet存在,但TBooleanHashSet不存在。

作為一種變通方法,我可以為 true(1) 和 false(0) 聲明兩個字節常量,但使用布爾原始集合會更方便。

Eclipse Collections具有BooleanSetBooleanListBooleanStackBooleanBag和以布爾值作為值的原始映射。 有可變和不可變版本。 您可以在此處找到BooleanIterable的所有子接口。 不同原始容器的工廠類在這里

下面是使用 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 的提交者。

我是作者,所以...

這樣的TBooleanHashSet的用例是什么? 您只能存儲四種狀態:

  • 空的
  • 真的
  • 錯誤的
  • 真假

您可以使用 EnumMap 和代表您的狀態的一些枚舉輕松完成此操作。 否則,最有效的方法可能是位掩碼。

反正沒看到需要。 (注意: TBooleanList可能有意義,但您可以改用java.util.BitSet 。)

如果您有需要,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM