Java中枚举的学习

枚举


枚举的定义

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中枚举的一些常见使用场景:

  1. 替代整型常量
    在传统的Java编程中,经常会使用整型常量来表示一组固定的值,比如季节、星期几等。使用枚举可以更清晰地表达这些常量的意图,并防止意外的整数值赋值。

  2. 定义枚举的行为
    枚举可以包含方法和字段,这为枚举类型的实例提供了附加的行为和状态。比如,可以为不同的季节定义不同的温度范围。

  3. 在switch语句中使用
    枚举在switch语句中特别有用,因为它们只包含固定的常量,所以可以避免意外的值导致的问题。

  4. 集合框架中使用
    枚举实例可以用作集合框架中的元素,例如SetListMap的键。因为枚举是final的,它们作为集合的元素时提供了不变性。

  5. 线程安全单例
    枚举在Java中提供了创建线程安全单例模式的最佳方式。因为枚举实例在JVM中是唯一的,且枚举的构造器默认是私有的,所以它们自然是线程安全的。

  6. 替代String常量
    在很多情况下,字符串常量用于表示固定的选项,如数据库中的枚举类型字段。在Java代码中直接使用枚举可以更安全、更清晰地表示这些选项。

枚举的使用使得代码更加清晰、易于理解和维护,是Java中非常强大的特性之一。

posted @ 2024-10-08 18:35  BingBing爱化学-04044  阅读(41)  评论(0)    收藏  举报