• guava的map中value转换问题和排序问题


    场景:一个枚举,我需要返回字典列表

      要求1:对枚举类型进行转化

      要求2:返回的值,根据 key 升序排列

    -----------------------------------

    话不多说,直接撸代码

    EnumTest.java 内容如下:

    package com.lianjia.mls.support.web.controller;
    
    import lombok.AllArgsConstructor;
    import lombok.Getter;
    
    import java.util.HashMap;
    import java.util.Map;
    
    @AllArgsConstructor
    @Getter
    public enum EnumTest {
    
        test_add_test("001", "字典1"),
        test_del_test("002", "字典2"),
        test003("003", "字典3"),
        test_update_test("006", "字典623"),
        test005("005", "字典523"),
        test004("004", "字典4"),
        test020("020", "字典20"),
    
        ;
        private String code;
        private String desc;
    
        private static final Map<String, EnumTest> allTypeMap = new HashMap<>();
    
        static {
            for (EnumTest enumTest : values()) {
                allTypeMap.put(enumTest.getCode(), enumTest);
            }
        }
    
        public static Map<String, EnumTest> getAllTypeWithMap() {
            return allTypeMap;
        }
    }
    

    TestMain.java

    package com.lianjia.mls.support.web.controller;
    
    import com.google.common.collect.ImmutableSortedMap;
    import com.google.common.collect.Maps;
    
    import java.util.Map;
    
    
    public class TestMain {
        public static void main(String[] args) {
    
            //未排序
            Map<String, String> resultNoSort = Maps.transformValues(EnumTest.getAllTypeWithMap(), enumTest -> enumTest.getDesc());
            System.out.println(resultNoSort);
    
            //已排序
            Map<String, String> resultSorted = ImmutableSortedMap.<String, String>naturalOrder()
                    .putAll(Maps.transformValues(EnumTest.getAllTypeWithMap(), enumTest -> enumTest.getDesc())).build();
            System.out.println(resultSorted);
        }
    }

    使用 guava 强大的功能,可以使代码变得更加简洁!!!

    参考:http://www.91r.net/ask/4906961.html

    Read the fucking manual and source code
  • 相关阅读:
    Java数组和方法
    Java数组
    Java方法升级
    Java流程控制
    Java编译器的常量优化
    chrome使用技巧(看了定不让你失望)
    C 排序法
    mysql 线程池 数据库连接池
    php mysql
    深入剖析PHP输入流 php://input (转载 http://www.nowamagic.net/academy/detail/12220520)
  • 原文地址:https://www.cnblogs.com/qxynotebook/p/9399121.html
Copyright © 2020-2023  润新知