場景:一個枚舉,我須要返回字典列表html
要求1:對枚舉類型進行轉化java
要求2:返回的值,根據 key 升序排列web
-----------------------------------ui
話很少說,直接擼代碼google
EnumTest.java 內容以下:.net
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.javacode
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 強大的功能,可使代碼變得更加簡潔!!!orm
參考:http://www.91r.net/ask/4906961.htmlhtm