枚举
目录
枚举的定义
Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一年的 12 个月份,一个星期的 7 天,方向有东南西北等。
Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。
声明枚举
示例
enum Color
{
RED, GREEN, BLUE;
}
具体示例
enum Color
{
RED, GREEN, BLUE;
}
public class Test
{
// 执行输出结果
public static void main(String[] args)
{
Color c1 = Color.RED;
System.out.println(c1);
}
}
枚举类
EnumMap类
EnumMap
是一个用于存储 key 为枚举类型的 map,底层使用数组实现(K,V 双数组)。下面是其继承结构:
public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V>
implements java.io.Serializable, Cloneable
从上面的继承结构上可以看出 EnumMap
的 key 必须是一个枚举类型,而 value 没有限制。
EnumSet类
见集合中set接口中EnumSet介绍
枚举使用场景
Java中的枚举(Enum)是一种特殊的类,它用于表示一组固定的常量。枚举提供了比传统常量(如使用public static final
修饰的变量)更为类型安全、易读、易维护的方式。以下是Java中枚举的一些常见使用场景:
-
替代整型常量:
在传统的Java编程中,经常会使用整型常量来表示一组固定的值,比如季节、星期几等。使用枚举可以更清晰地表达这些常量的意图,并防止意外的整数值赋值。 -
定义枚举的行为:
枚举可以包含方法和字段,这为枚举类型的实例提供了附加的行为和状态。比如,可以为不同的季节定义不同的温度范围。 -
在switch语句中使用:
枚举在switch
语句中特别有用,因为它们只包含固定的常量,所以可以避免意外的值导致的问题。 -
集合框架中使用:
枚举实例可以用作集合框架中的元素,例如Set
、List
或Map
的键。因为枚举是final
的,它们作为集合的元素时提供了不变性。 -
线程安全单例:
枚举在Java中提供了创建线程安全单例模式的最佳方式。因为枚举实例在JVM中是唯一的,且枚举的构造器默认是私有的,所以它们自然是线程安全的。 -
替代String常量:
在很多情况下,字符串常量用于表示固定的选项,如数据库中的枚举类型字段。在Java代码中直接使用枚举可以更安全、更清晰地表示这些选项。
枚举的使用使得代码更加清晰、易于理解和维护,是Java中非常强大的特性之一。
标签:Java,常量,学习,枚举,EnumMap,使用,public From: https://www.cnblogs.com/BingBing-8888/p/18452273