• 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}

  • 相关阅读:
    德迅云安全数据库审计——如何保障企业数据库安全
    计算机毕业设计(附源码)python游戏盒子系统
    玩转树莓派二、树莓派配置工具 raspi-config 使用指南
    解决连接数据库提示:Public Key Retrieval is not allowed
    【计算机网络】 总结复习(2)
    智慧教育信息化建设解决方案
    Java —— 数组
    面试经典150题——Day34
    UI案例——登陆系统
    String类重点知识思维导图
  • 原文地址:https://blog.csdn.net/hfaflanf/article/details/127834154