java枚举类型enum中enummap与enumset
时间: 2023-11-04 18:19:39 浏览: 58
Java中的枚举类型enum,可以通过EnumMap和EnumSet两个类进行更高效的处理。
EnumMap是一种特殊的Map实现,它只能存储枚举类型作为键值,而且根据枚举常量的定义顺序来维护键值对的顺序。EnumMap的实现优化了枚举类型的使用,比如使用数组来存储枚举常量,而且对于大多数操作,EnumMap的性能都比HashMap更好。
EnumSet是一种特殊的Set实现,它只能存储枚举类型作为元素,而且使用一个位向量来表示Set中的元素,对于包含枚举常量的Set,EnumSet比HashSet更加高效,同时EnumSet在默认情况下也是按照枚举常量的定义顺序来维护Set中元素的顺序。
总之,使用EnumMap和EnumSet可以有效地利用枚举类型的特性,提高程序的运行效率。
相关问题
java中枚举类型enum用法
Java中枚举类型enum用于定义一组有限的常量。在Java 1.5之前,常量通常是使用public static final修饰的变量来定义的。而使用枚举类型可以更好地组织相关联的常量,并提供更多的方法操作。枚举类型的声明格式为:enum EnumName {ENUM_VALUE1, ENUM_VALUE2, ...}。其中,ENUM_VALUE1、ENUM_VALUE2等是枚举类型的常量。
枚举类型在Java中有很多应用场景。例如,可以使用枚举类型来表示一周的星期几,定义颜色常量,定义状态等。通过使用枚举类型,可以增加代码的可读性和安全性。
此外,Java提供了一些与枚举类型相关的集合类,如EnumSet和EnumMap。EnumSet保证集合中的元素不重复,而EnumMap中的key是enum类型,而value可以是任意类型。这些集合类能够更方便地对枚举类型进行操作。
关于枚举类型的更多使用方法和规范,可以参考Java官方文档或阿里巴巴Java开发手册。<em>1</em><em>2</em><em>3</em>
#### 引用[.reference_title]
- *1* *2* [Java枚举(enum)常用的用法总结](https://blog.csdn.net/qq_44866828/article/details/117380065)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item]
- *3* [Java 枚举(enum) 的常见用法和开发规范](https://blog.csdn.net/dichengyan0013/article/details/102347137)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item]
[ .reference_list ]
java 枚举类型enum 双值
以下是Java枚举类型enum双值的示例:
```java
public enum DoubleEnum {
FIRST(1.0),
SECOND(2.0);
private final double value;
DoubleEnum(double value) {
this.value = value;
}
public double getValue() {
return value;
}
}
```
在上面的示例中,我们定义了一个名为DoubleEnum的枚举类型,它有两个常量FIRST和SECOND,每个常量都有一个double类型的值。我们还定义了一个getValue()方法,用于获取每个常量的值。
使用以下代码可以访问枚举类型中的常量和值:
```java
DoubleEnum first = DoubleEnum.FIRST;
DoubleEnum second = DoubleEnum.SECOND;
System.out.println(first + " value is " + first.getValue()); // 输出:FIRST value is 1.0
System.out.println(second + " value is " + second.getValue()); // 输出:SECOND value is 2.0
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)