使用EnumSet 代替位域(32)

一、位域(Bit field):使用or 運算將幾個常量合併到一個集合中java

  • 位操做,能夠有效地執行 AND 、OR 這樣的位操做
  • 可是 位域比int 常量枚舉缺點更多

二、java.util 包裏面的EnumSet 類是有效的替代方案性能

  • 從單個枚舉類型中提取的多個值的多個集合
  • 整個EnumSet 就是用單個long來表示的,內部實現用到了大量位運算,性能可與位域媲美

  • EnumSet 提供靜態工廠,輕鬆建立集合

  • EnumSet 集 位域的性能優點和枚舉類型全部優勢於一身
  • 缺點是:沒法建立不可變的EnumSet 集合
相關文章
相關標籤/搜索