美文网首页
EnumSet,EnumMap

EnumSet,EnumMap

作者: wsj1211 | 来源:发表于2020-06-18 16:52 被阅读0次

EnumSet

枚举单参数能参与switch case值判断:

public enum Color {

    YELLOW,
    RED,
    BLUE,
    PURPLE,
    BLACK;

}
public class ColorEnumTest {

    public static void main(String[] args) {
        Color color = Color.BLUE;
        switch (color) {
            case RED:
                System.out.println("红色");
                break;
            case BLUE:
                System.out.println("蓝色");
                break;
            case PURPLE:
                System.out.println("紫色");
                break;
            case BLACK:
                System.out.println("黑色");
                break;
            case YELLOW:
                System.out.println("黄色");
                break;
             default:
                 System.out.println("蓝色");
                 break;
        }
    }

}

测试结果:


image.png

每个枚举类型颜色是该Color类的一个实例对象,该构成方式和单例模式有些类似,故可以用只有一个枚举类型的枚举作为单例模式,而且枚举的构造器由编译器管理安全性十分高,既可以防止反射破解也可以防止反序列破解。

方法

EnumSet.noneOf()方法创建一个空的set ' EnumSet<Color> enumSet = EnumSet.noneOf(Color.class);'
EnumSet.allOf()方法创建一个满的set EnumSet<Color> enumSet = EnumSet.allOf(Color.class);
EnumSet.range() 'EnumSet<Color> enumSet = EnumSet.range(Color.YELLOW,Color.BLUE);
EnumSet.complementOf补集创建set
EnumSet<Color> enumSet = EnumSet.range(Color.YELLOW,Color.BLUE);
        System.out.println(enumSet);
        EnumSet<Color> enumSet1 = EnumSet.complementOf(enumSet);

EnumMap

public class EnumMapTest {

    public static void main(String[] args) {
        EnumMap<Color,String> enumMap = new EnumMap(Color.class);
        enumMap.put(Color.BLACK,"黑色");
        enumMap.put(Color.BLUE,"蓝色");
        System.out.println(enumMap);
        System.out.println(enumMap.get(Color.BLUE));
    }
}

测试结果:


image.png

相关文章

  • EnumSet,EnumMap

    EnumSet 枚举单参数能参与switch case值判断: 测试结果: 每个枚举类型颜色是该Color类的一个...

  • 基础知识梳理&Enum

    Enum EnumMap EnumSet 1.noneOf创建空队列 2.allOf创建满队列 3.range创建...

  • Android中不推荐使用Enum

    一、Enum的产生 Java1.5中引入了枚举的语法,包括Enum,EnumSet,EnumMap等。其中Enum...

  • 第六章枚举和注解

    目录 使用枚举类型替代整型常量 使用实例属性替代序数 使用EnumSet替代位属性 使用EnumMap替代序数索引...

  • Enum

    java定义新的类型的方式:类、接口、枚举 取出枚举的全部类容: 类集对枚举的支持:EnumMap、EnumSet...

  • 一文弄懂EnumMap和EnumSet

    一文弄懂EnumMap和EnumSet 简介 一般来说我们会选择使用HashMap来存储key-value格式的数...

  • Enum、EnumMap、EnumSet的用法讲解

    在工作中遇到这样一个问题,要在前台页面上渲染出来所有的枚举元素,但是前台页面用的是Velocity,所以需要把枚举...

  • 枚举详解之EnumSet、EnumMap用法

    枚举简单例子 测试结果 Color枚举的本质就是一个类,编译器会自动为我们生成Color类,通过反编译得到该类如下...

  • java EnumSet学习

    一、EnumSet 简单介绍 二、EnumSet的内部设计思路 EnumSet是一个抽象类,内部多处采用静态工厂方...

  • 第 90 条:考虑用序列化代理代替序列化实例

    EnumSet

网友评论

      本文标题:EnumSet,EnumMap

      本文链接:https://www.haomeiwen.com/subject/ewiuxktx.html