java枚举类-根据key获取value及根据value获取key

java枚举类-根据key获取value及根据value获取key

创建枚举类,以汽车为例
package com.lw.coodytest.enums;

/**
 * @Classname CarTypeEnum
 * @Description 汽车类型枚举
 * @Author lw
 * @Date 2020-01-08 11:32
 */
public enum CarTypeEnum {

    CAR_TYPE_BMW("bmw", "宝马"),
    CAR_TYPE_BC("bc", "奔驰"),
    CAR_TYPE_AUDI("audi", "奥迪");

    private String type;

    private String desc;

    private CarTypeEnum(String type, String desc) {
        this.type = type;
        this.desc = desc;
    }

    public static String getValue(String type) {
        CarTypeEnum[] carTypeEnums = values();
        for (CarTypeEnum carTypeEnum : carTypeEnums) {
            if (carTypeEnum.type().equals(type)) {
                return carTypeEnum.desc();
            }
        }
        return null;
    }

    public static String getType(String desc) {
        CarTypeEnum[] carTypeEnums = values();
        for (CarTypeEnum carTypeEnum : carTypeEnums) {
            if (carTypeEnum.desc().equals(desc)) {
                return carTypeEnum.type();
            }
        }
        return null;
    }

    private String type() {
        return this.type;
    }

    private String desc() {
        return this.desc;
    }
}
测试代码
public static void main(String[] args) {
        // 根据类型获取描述
        String desc = CarTypeEnum.getValue("bmw");
        System.out.println("根据类型获取描述:" + desc);
        // 根据描述获取类型
        String type = CarTypeEnum.getType("宝马");
        System.out.println("根据描述获取类型:" + type);
    }
打印结果

在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Java中的Enum类的valueOf()方法来根据枚举key获取对应的value。例如: ``` public enum Fruit { APPLE("苹果"), BANANA("香蕉"), ORANGE("橙子"); private String name; Fruit(String name) { this.name = name; } public String getName() { return name; } } // 根据key获取value String appleName = Fruit.valueOf("APPLE").getName(); // "苹果" ``` <br>### 回答2: Java枚举是一种特殊的数据类型,它将一组具有相似属性的常量定义在一个集合内。在Java中,枚举常量又称为枚举值,每个枚举常量都对应一个整数值,这个整数值就是枚举常量在枚举中的索引位置。 如果我们想要根据枚举常量的键(也就是定义的名称)获取对应的值,我们需要在枚举类中定义一个方法来实现。具体步骤如下: 首先在枚举类中定义一个静态方法,这个静态方法的返回值类型就是我们要获取枚举常量对应的值的类型。在方法的参数列表中,我们需要定义一个输入参数,这个输入参数对应我们要获取枚举值的名称(也就是所谓的枚举值的key)。 接着,在这个静态方法内部,使用Java中Enum类的valueOf方法将输入参数转换为我们需要的枚举常量,然后通过这个枚举常量来获取对应的值,最后将这个值返回即可。 举个例子,假设我们定义了一个颜色枚举类,他有3个枚举常量:RED、GREEN、BLUE,我们需要根据枚举常量的名称获取对应的RGB值。那么我们可以在该枚举类中定义以下方法: public static int[] getValue(String key) { ColorEnum colorEnum = ColorEnum.valueOf(key.toUpperCase()); return colorEnum.getValue(); } 其中,toUpperCase()是将输入的key字符串全部转换为大写字符的方法,因为枚举类中的名称都是大写的,所以需要将输入的字符串转换以便于匹配。 然后,我们就可以使用这个方法来获取对应的RGB值了,例如: int[] rgb = ColorEnum.getValue("GREEN"); 在上面的例子中,我们将"GREEN"作为输入参数传入方法中,然后通过valueOf方法获取枚举常量,最后返回对应的RGB值。这就是获取枚举常量值的方法的具体实现过程。 <br>### 回答3: Java中的枚举类型是一种特殊类型,它将一组常量作为一个整体来处理。每个常量都有一个唯一的名称,并且这些常量是不可变的。枚举Java中已经存在了很长时间,是一种非常常用的数据类型。通过快速简单地访问它的常量,它可以有效地帮助我们编写简洁的代码。 在Java枚举中,常量其实是枚举类型的对象。每个枚举常量都可以包含一个或多个属性,一般我们把属性保存在常量中,这些属性可以在常量中进行初始化,并且在常量中可以定义方法。 我们可以通过枚举对象来获取每个枚举类的常量,而这些常量也可以包括其它的属性和方法。要根据枚举key获取value,可以采用以下代码: ```java public enum EnumDemo { MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY("星期三"), THURSDAY("星期四"), FRIDAY("星期五"), SATURDAY("星期六"), SUNDAY("星期日"); private String value; private EnumDemo(String value) { this.value = value; } public String getValue() { return value; } public static String getValueByKey(String key) { for (EnumDemo e : EnumDemo.values()) { if (e.name().equals(key)) { return e.value; } } return null; } } ``` 在上述代码中,我们首先定义了一个枚举类EnumDemo,其中定义了每个枚举常量的名称和值。然后我们在枚举类中定义了一个静态方法getValueByKey(String key),该方法可以根据枚举key获取对应的value。在这个方法中,我们通过遍历枚举类型中的每个枚举值,查找与输入的key相等的枚举值,如果找到相等的枚举值,就返回该枚举对象的属性值。如果遍历完整个枚举类型,仍然找不到对应的枚举对象,就返回null。 使用上述代码可以很方便地根据枚举key获取对应的value,这样我们就可以更加灵活地处理不同的枚举类型,提高代码的可读性和维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值