`
leonzhx
  • 浏览: 770303 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Item 32: Use EnumSet instead of bit fields

阅读更多

1.  The java.util package provides the EnumSet class to efficiently represent sets of values drawn from a single enum type. This class implements the Set interface, providing all of the richness, type safety, and interoperability you get with any other Set implementation. But internally, each EnumSet is represented as a bit vector. If the underlying enum type has sixty-four or fewer elements, the entire EnumSet is represented with a single long, so its performance is comparable to that of a bit field. Bulk operations, such as removeAll and retainAll, are implemented using bitwise arithmetic, just as you’d do manually for bit fields.

 

2.  EnumSet provides a rich set of static factories for easy set creation.

 

3.  The one real disadvantage of EnumSet is that it is not, as of release 1.6, possible to create an immutable EnumSet.

 

分享到:
评论

相关推荐

    Effective Java 3rd edition(Effective Java第三版英文原版)附第二版

    Item 36: Use EnumSet instead of bit fields Item 37: Use EnumMap instead of ordinal indexing Item 38: Emulate extensible enums with interfaces Item 39: Prefer annotations to naming patterns Item 40: ...

    java集合-EnumSet的使用

    EnumSet 是 Java 中用于存储枚举类型元素的集合类。它是 AbstractSet 的子类,并专门为枚举类型设计,提供了高效的实现。 下面是关于 EnumSet 的一些重要信息: 存储枚举元素:EnumSet 只能存储同一个枚举类型的...

    阅读EnumSet抽象类

    主要介绍了阅读EnumSet抽象类源码,具有一定参考价值,需要的朋友可以了解下。

    java笔试题a说他不和x比-effective-java-in-a-nutshell:简而言之,有效的Java

    的例如:EnumSet.of(自变量1,参数2) valueOf例如:BigInteger.valueOf(Integer.MAX_VALUE) getInstance例如:myObject.getInstance(argument) getXXX例如: Files.getFileStore(path) newXXX例如:Files....

    Java中EnumSet代替位域代码详解

    主要介绍了Java中EnumSet代替位域代码详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

    Java EnumSet工作原理初窥

    EnumSet是Java枚举类型的泛型容器,Java既然有了SortedSet、TreeSet、HashSet等容器,为何还要多一个EnumSet呢?答案肯定是EnumSet有一定的特性,举个例子,EnumSet的速度很快。其他特性不一一列举了,毕竟本文的...

    android_external_square_javawriter

    Java编写器JavaWriter是一个实用程序类,它有助于生成 Java 源文件。 在执行诸如注释处理或与元数据文件(例如,数据库模式、... of( PRIVATE )) .emitField( " String " , " lastName " , EnumSet . of( PRIVATE )) .

    libjavawriter

    Java编写器 JavaWriter是一个实用程序类,它有助于生成 Java 源文件。... .emitField( " String " , " firstName " , EnumSet . of( PRIVATE )) .emitField( " String " , " lastName " , EnumSet . of( PRIVATE )) .

    说说Java中的枚举 转 可以了,够了 包括EnumSet(Map)

    NULL 博文链接:https://mlaaalm.iteye.com/blog/694720

    Options:有时在某些情况下,您想在OptionSet中使用Enum或希望Enum由Raw的Int类型支持,但同时也具有String标签

    目录介绍特征安装用法设置一个MappedValueRepresentable枚举使用MappedValueCollectionRepresented 使用MappedEnum类型的可编码枚举在ESet中使用OptionSet中的EnumSet 将EnumSet转换为Enum数组使用...

    一文弄懂EnumMap和EnumSet

    一文弄懂EnumMap和EnumSet 简介 一般来说我们会选择使用HashMap来存储key-value格式的数据,考虑这样的特殊情况,一个HashMap的key都来自于一个Enum类,这样的情况则可以考虑使用本文要讲的EnumMap。 EnumMap 先看...

    nexuslib-as3:一个Actionscript库,提供强大的反射,序列化,种子随机数生成,加密,联网等功能

    概述 nexuslib是Actionscript库的集合。... 反射库专门用于生产环境,目前正在生产环境中使用。 入门 下载,或在您的项目中克隆仓库和参考。... public static function get All ():EnumSet { return

    Java实现高效的枚举元素集合

    Set是Java集合类的重要...使用EnumSet类的add()方法添加元素,使用EnumSet类的remove()方法删除元素,使用EnumSet类的complementOf()方法获取对象的全部,使用EnumSet类的range()方法获取指定范围的元素。  代码如下

    enumset-用于创建紧凑的枚举集的库-Rust开发

    enumset一个用于定义可在紧凑位集中使用的枚举的库。 它支持最多128个变量的枚举,并具有在枚举中使用这些集合的宏。用于定义可在紧凑位集中使用的枚举的库。 它支持最多128个变量的枚举,并具有一个宏以在常量中...

    Snap4J:允许没有原生装饰的框架与屏幕边缘对齐的小型库

    或者如果你想限制可能的状态: snap4JListener = new Snap4JListener(EnumSet.of(NextWindowState.NORMAL, NextWindowState.MAXIMIZED)); 通过实例化 Snap4JListener() 将处理 JFrame 实例上的所有拖动事件。 已知...

    高级编程-java实验报告.docx

    实验目的及要求 1) 掌握Java集合框架的概念以及几种具体实现:ArrayList, LinkedList, HashSet, TreeSet, PriorityQueue; 2) 掌握Java集合框架的映射的概念以及映射的...3)枚举类型的使用,EnumSet和EnumMap的使用;

    Java—Set集合详解(HashSet/LinkedHashSet/TreeSet/EnumSet)

    Set集合介绍 Set集合的概念   Set集合类似于一个容器,程序把很多对象保存到Set集合中,Set集合对添加顺序不记录,当有重复的对象保存到Set集合时,不会新增后加的重复对象。 Set集合的特点 Set集合无重复元素,...

    Java期末复习——枚举与反射机制

    Java——枚举: enum关键字、Enum类 类集对枚举的支持——EnumMap类与EnumSet类 枚举类实现接口、在枚举类中定义抽象方法 Java反射机制: Class类、Class类的使用 反射的应用:取得类的结构

Global site tag (gtag.js) - Google Analytics