gpt4 book ai didi

java - 我可以将枚举键映射到枚举值吗?

转载 作者:行者123 更新时间:2023-12-01 18:48:29 26 4
gpt4 key购买 nike

我有 2 个枚举(模块、UniqueChars)

模块拥有所有 key

UniqueChars 具有所有值。

如何使用 HashMap 或 EnumMap 映射这些?

首先,是否可以从 2 个单独的枚举中读取键和值?

public enum modules {
MODULE("MTREE, VTL_POOL, VTL_ACCESS, SNAPSHOT, NFS_EXPORT, CIFS_SHARE, REPORTS, LOCAL_USERS ");

private String validModules;

private modules(String validModules) {
this.validModules= validModules;
}
}

public enum UniqueChars {
LOWER_CASE_LETTERS("abcdefghijklmnopqrstuvwxyz"),
UPPER_CASE_LETTERS("ABCDEFGHIJKLMNOPQRSTUVWXYZ"),
NUMBERS("0123456789"),
PUNCTUATION(".-_"),
MTREE("*/:<>?\\|"),
VTL_POOL("*'?:/\\,"),
VTL_ACCESS("*'?:/\\,"),
SNAPSHOT("`~!@#$%^&*()_+-={}|[]\\:\";'<>?,.'"),
NFS_EXPORT("_-"),
CIFS_SHARE("\\/:*?\"<>|+[];,="),
REPORTS("`~!@#$%^&*()_+-={}|[]\\:\";'<>?,.'"),
LOCAL_USERS("._-");

private String validChars;

private UniqueChars(String validChars) {
this.validChars = validChars;
}


public String getValidChars() {
return validChars;
}

public static String getValidCharStrings(UniqueChars... uniqueChars) {
StringBuilder validCharsSB = new StringBuilder();
for (UniqueChars chars : uniqueChars) {
validCharsSB.append(chars.getValidChars());
}
return validCharsSB.toString();
}
}

最佳答案

是的:

import java.util.*;
enum color {
r,g,b
}
enum letter {
a,b,c
}
public class So16659089 {
public static void main(String[] args) {
System.out.println(map);
System.out.println(map2);
}
static Map<color,letter> map=new EnumMap<color,letter>(color.class);
static { // one way
map.put(color.r,letter.a);
map.put(color.g,letter.b);
map.put(color.b,letter.c);
}
static Map<color,letter> map2=new EnumMap<color,letter>(color.class);
static letter[] letters=new letter[]{letter.a,letter.b,letter.c};
static { // another way
for(int i=0;i<color.values().length;i++)
map2.put(color.values()[i],letters[i]);
}
}

关于java - 我可以将枚举键映射到枚举值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16659089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com