• Java 枚举数据转Map 查找 筛选


    枚举类

    1. public enum TestEnum {
    2. CODE_11("CODE_11","测试1"),
    3. CODE_22("CODE_22","测试2"),
    4. CODE_33("CODE_33","测试3"),
    5. CODE_44("CODE_44","测试4"),
    6. CODE_55("CODE_55","测试5"),
    7. ;
    8. private String code;
    9. private String name;
    10. TestEnum(String code, String name) {
    11. this.code = code;
    12. this.name = name;
    13. }
    14. public String getCode() {
    15. return code;
    16. }
    17. public String getName() {
    18. return name;
    19. }
    20. }

    1.获取所有枚举值,并转map

    1. public static void main(String[] args) {
    2. TestEnum[] values = TestEnum.values();
    3. Map<String, String> map = Arrays.stream(values).collect(Collectors.toMap(i -> i.getCode(), i -> i.getName()));
    4. System.out.println(map);
    5. }

    控制台输出:

    {CODE_55=测试5, CODE_44=测试4, CODE_33=测试3, CODE_22=测试2, CODE_11=测试1}

    2.根据key排序

    1. public static void main(String[] args) {
    2. TestEnum[] values = TestEnum.values();
    3. Map<String, String> map = Arrays.stream(values)
    4. .collect(Collectors.toMap(i -> i.getCode(), i -> i.getName())).entrySet()
    5. .stream().sorted((e1, e2) -> e1.getKey().compareTo(e2.getKey()))
    6. .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,(e1, e2) -> e1, LinkedHashMap::new));
    7. System.out.println(map);
    8. }

    控制台输出:

    {CODE_11=测试1, CODE_22=测试2, CODE_33=测试3, CODE_44=测试4, CODE_55=测试5}

    3.查找

    1. public static void main(String[] args) {
    2. TestEnum[] values = TestEnum.values();
    3. Map<String, String> map = Arrays.stream(values)
    4. .collect(Collectors.toMap(i -> i.getCode(), i -> i.getName())).entrySet().stream()
    5. .filter(e ->e.getKey().equals("CODE_33"))
    6. .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,(e1, e2) -> e1, LinkedHashMap::new));
    7. System.out.println(map);
    8. }

    控制台输出:

    {CODE_33=测试3}

    4.模糊查询

    1. public static void main(String[] args) {
    2. TestEnum[] values = TestEnum.values();
    3. Map<String, String> map = Arrays.stream(values)
    4. .collect(Collectors.toMap(i -> i.getCode(), i -> i.getName())).entrySet().stream()
    5. .filter(e ->e.getKey().contains("2"))
    6. .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,(e1, e2) -> e1, LinkedHashMap::new));
    7. System.out.println(map);
    8. }

    控制台输出:

    {CODE_33=测试3}

  • 相关阅读:
    画图时使用的函数和一些错误处理
    微信小程序动态海报
    JVM对象创建与内存分配机制分析
    jupyter Notebook快捷键
    npm介绍、常用命令详解以及什么是全局目录
    【Linux】NUC977移植使用MQTT(基于mosquitto)
    Vue 项目部署为 HTTPS 站点
    Java源码分析 | CharSequence
    外汇天眼:投资者关注!Cboe与MSCI发布多样化指数期权和波动率指数
    剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
  • 原文地址:https://blog.csdn.net/hfaflanf/article/details/127834154