1. 程式人生 > 其它 >列舉類enum儲存於map、set

列舉類enum儲存於map、set

列舉ENUM

用途:後端獲取 列舉資料 統一打包給前端,前端通過下拉框展示資料。

例子中獲取列舉值的方式有三種:

  1. OperTypeEnum.ADD
  2. OperTypeEnum.ADD.code  -> result: 1
  3. OperTypeEnum.ADD.name -> result: "增加"

一、EnumSet

// 建立列舉類的set集合
EnumSet enumSet = EnumSet.allOf(OperTypeEnum.class);
// 通過迭代器遍歷
enumSet.iterator().forEachRemaining(ele -> System.out.println(ele));

二、EnumMap

EnumMap enumMap = new EnumMap(OperTypeEnum.class);
OperTypeEnum[] oArr = OperTypeEnum.values();
for(OperTypeEnum operTypeEnum : oArr){
   enumMap.put(operTypeEnum,operTypeEnum.name);
}
System.out.println(enumMap);

三、自定義map

package enumClass;

import java.util.HashMap;
import java.util.Map;

/**
 * 操作型別列舉
 * 1.增刪改查
 * */
public enum OperTypeEnum {
    ADD(1,"增加"),
    DELETE(2,"刪除"),
    SELECT(3,"查詢"),
    UPDATE(4,"修改");

    public int code;
    public String name;

    // 構造方法
    OperTypeEnum(int code, String name){
        this.code = code;
        this.name = name;
    }

    /**
     * 遍歷列舉,將資料存放於map中
     * */
    public static Map<Integer,String> enumArrayToMap(){
        Map<Integer,String> map = new HashMap<>();
        // values()獲取列舉物件的陣列:[OperTypeEnum,OperTypeEnum,...]
        OperTypeEnum[] oArr = OperTypeEnum.values();
        // for
//      for (int i = 0; i < oArr.length; i++) {
//          map.put(oArr[i].code,oArr[i].name);
//      }
        // forEach
        for(OperTypeEnum operTypeEnum : oArr){
            map.put(operTypeEnum.code,operTypeEnum.name);
        }
        return map;
    }

    public static void main(String[] args) {
        Map<Integer,String> map = enumArrayToMap();
        System.out.println(map.get(1));
    }
}