JAVA枚举

key value 类(项目用不到的可以忽略这个类)

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * key value 类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class KvVO {
    @ApiModelProperty(value = "key")
    private String k;

    @ApiModelProperty(value = "value")
    private String v;
}
设备枚举:摄像头、流量计、压力计等

enum 关键字 修饰
直接上代码

import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil;
import 上边那个类的包路径.KvVO;
import lombok.Getter;

import java.util.*;
import java.util.stream.Collectors;

/**
 * 设备枚举
 */
@Getter
public enum EquipmentEnum {
    _1(1, "摄像头"),
    _2(2, "流量计"),
    _3(3, "阀门"),
    _4(4, "压力计"),
    _5(5, "泄露报警器"),
    ;

    private Integer type;
    private String name;

    EquipmentEnum(Integer type, String name) {
        this.type = type;
        this.name = name;
    }

    public static String name(Integer type) {
        for (EquipmentEnum e : EquipmentEnum.values()) {
            if (ObjectUtil.equals(e.getType(), type)) {
                return e.getName();
            }
        }
        return "";
    }

	//和上边的 获取name 方法 得到的返回值一样
    public static String getNameByType(Integer type) {
        String getName = Arrays.stream(EquipmentEnum.values())
                .filter(e -> Objects.equals(e.getType(), type))
                .findFirst()
                .map(EquipmentEnum::getName)
                .orElse(CharSequenceUtil.EMPTY);
        return getName;
    }

    public static Integer type(String name) {
        for (EquipmentEnum e : EquipmentEnum.values()) {
            if (ObjectUtil.equals(e.getName(), name)) {
                return e.getType();
            }
        }
        return 0;
    }

	//和上边的 获取type 方法 得到的返回值一样
    public static Integer getTypeByName(String name) {
        Integer getType = Arrays.stream(EquipmentEnum.values())
                .filter(e -> Objects.equals(e.getName(), name))
                .findFirst()
                .map(EquipmentEnum::getType)
                .orElse(Calendar.ERA);
        return getType;

    }

	//这里用到了 key value类
    public static List<KvVO> getKvVO() {
        List<KvVO> vo = Arrays.stream(EquipmentEnum.values())
                .map(e -> new KvVO(e.getType().toString(), e.getName()))
                .collect(Collectors.toList());
        return vo;
    }

    //移除 摄像头 和 阀门
    public static List<KvVO> getStationPipeKvVo() {
        ArrayList<Integer> integers = ListUtil.toList(EquipmentEnum._1.getType(), EquipmentEnum._3.getType());

        List<KvVO> vo = Arrays.stream(EquipmentEnum.values())
                .filter(e -> !integers.contains(e.getType()))
                .map(e -> new KvVO(e.getType().toString(), e.getName()))
                .collect(Collectors.toList());
        return vo;
    }
}
接口BaseEnum
public interface BaseEnum<T> {
    T getValue();

    default String getEnumName() {
        return null;
    }
}
GasObjectUtil
import cn.hutool.core.util.ObjectUtil;

import java.util.Arrays;

/**
 * @author 孙永潮
 * @date 2024/01/03
 */
public class GasObjectUtil extends ObjectUtil {
    public GasObjectUtil() {
    }

    public static boolean equals(Object obj1, Object... obj2) {
        boolean bool = Arrays.stream(obj2).anyMatch((e) -> {
            return equal(obj1, e);
        });
        return bool;
    }
}
枚举:唐山市各区县 AreaEnum
package cn.包名.路径.enums;

import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.tedu.util.GasObjectUtil;
import lombok.Getter;
import org.springframework.util.ObjectUtils;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;

/**
 * 枚举
 * 唐山市各区县
 */
@Getter
public enum AreaEnum implements BaseEnum<Integer> {
    _130203(130203, 1, "路北区", 1),
    _130202(130202, 2, "路南区", 2),
    _130204(130204, 3, "古冶区", 3),
    _130205(130205, 4, "开平区", 4),
    _130207(130207, 5, "丰南区", 5),
    _130208(130208, 6, "丰润区", 6),
    _130273(130273, 7, "高新开发区", 7),
    _130283(130283, 8, "迁安市", 8),
    _130281(130281, 9, "遵化市", 9),
    _130284(130284, 10, "滦州市", 10),
    _130224(130224, 11, "滦南县", 11),
    _130225(130225, 12, "乐亭县", 12),
    _130227(130227, 13, "迁西县", 13),
    _130229(130229, 14, "玉田县", 14),
    _130274(130274, 15, "海港开发区", 15),
    _130290(130290, 16, "国际旅游岛", 16),
    _130271(130271, 17, "芦台开发区", 17),
    _130272(130272, 18, "汉沽管理区", 18),
    _130209(130209, 19, "曹妃甸区", 19),
    //南堡 暂时属于 曹妃甸
    _20(130209, 20, "南堡开发区", 20),
    ;

    private final Integer region;
    private final Integer type;
    private final String name;
    private final Integer sort;

    public static final Map<Integer, String> AREA_MAP = Arrays.stream(AreaEnum.values())
            .collect(Collectors.toMap(AreaEnum::getType, AreaEnum::getName));

    public static final String mainAreaName = "主城区";
    public static final String allAreaName = "全市";

    AreaEnum(Integer region, Integer type, String name, Integer sort) {
        this.region = region;
        this.type = type;
        this.name = name;
        this.sort = sort;
    }

	//用到了上边的 GasObjectUtil
    public static final List<String> mainArea = Arrays.stream(AreaEnum.values())
            .filter(e -> GasObjectUtil.equals(e, _130203, _130202, _130273))
            .map(AreaEnum::getType)
            .map(StrUtil::toString)
            .collect(Collectors.toList());

    public static final List<Integer> allArea = Arrays.stream(AreaEnum.values())
            .map(AreaEnum::getType)
            .collect(Collectors.toList());

    public static AreaEnum of(Integer type) {
        return Arrays.stream(AreaEnum.values())
                .filter(e -> GasObjectUtil.equals(e.getType(), type))
                .findFirst()
                .orElse(null);
    }

    public static String name(String type) {
        return name(Convert.toInt(type));
    }

    public static String name(Integer type) {
        return Arrays.stream(AreaEnum.values())
                .filter(e -> ObjectUtil.equals(e.getType(), type))
                .findFirst()
                .map(AreaEnum::getName)
                .orElse(StrUtil.EMPTY);
    }

    public static Integer sort(String type) {
        return sort(Convert.toInt(type));
    }

    public static Integer sort(Integer type) {
        return Arrays.stream(AreaEnum.values())
                .filter(e -> ObjectUtil.equals(e.getType(), type))
                .findFirst()
                .map(AreaEnum::getSort)
                .orElse(0);
    }

    public static Integer type(String name) {
        return Arrays.stream(AreaEnum.values())
                .filter(e -> ObjectUtil.equals(e.getName(), name))
                .findFirst()
                .map(AreaEnum::getType)
                .orElse(null);
    }

    public static boolean isMain(String area) {
        return StrUtil.contains(area, ",");
    }

    public static String getAreaName(String area) {
        return isMain(area) ? AreaEnum.mainAreaName : name(area);
    }

    public static Integer getRegionByAreaType(String type) {
        return Arrays.stream(AreaEnum.values())
                .filter(e -> Objects.equals(e.getType(), Integer.valueOf(type)))
                .findFirst()
                .map(AreaEnum::getRegion)
                .orElse(null);
    }

    public Integer handleSort(String type) {
        return sort(type);
    }
    
    @Override
    public Integer getValue() {
        return this.type;
    }

    @Override
    public String getEnumName() {
        return this.name;
    }
}
获取Map的键值对

正好用上边的枚举,写一个Map

package cn.tedu.demo.service;

import 上边的枚举.AreaEnum;

import java.util.*;
import java.util.stream.Collectors;

/**
 * @author 孙永潮
 * @date 2024/01/03
 */
public class MapDemo {
    public static void main(String[] args) {
        Map<Integer, String> map = AreaEnum.AREA_MAP;

        for (Map.Entry<Integer, String> entry : map.entrySet()) {
            //键值对的键
            Integer key = entry.getKey();

            //键值对的值
            String value = entry.getValue();

            System.out.println(key + " : " + value);
        }

        //所有的键
        Set<Integer> keys = map.keySet();
        for (Integer e : keys){
            System.out.print("     " + e);
        }
        System.out.println();

        //所有的值
        List<String> values = new ArrayList<>(map.values());
        for (String s : values){
            System.out.print(s + " ");
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值