Effective Java 讀書筆記: Item 32 - 使用 EnumSet 替代 bit fields

記錄讀書心得, 內容不一定和書上一致, 有些是我自己的看法。

這節說明有 java.util.EnumSet 這種好東西, 不用擔心使用 enum 後就沒有位元運算可用。以往用 int 表示 constant 時, 常會技巧性地將常數設成 2 的次方, 方便之後用位元運算表示常數的聯集、找出交集等。而 EnumSet 針對 enum 實作了相關操作, 底層也是使用 long 或 long[] 表示, 不用擔心時間或空間成本。

有興趣學習位元運算的技巧的話, 看實際實作 EnumSet 的 RegularEnumSet 和 JumboEnumSet 的原始碼可以學到不少東西, 像是用 population count 速算集合裡的個素。

留言

這個網誌中的熱門文章

(C/C++ ) 如何在 Linux 上使用自行編譯的第三方函式庫

virtualbox 使用 USB 裝置

熟悉系統工具好處多多