Java中这两个枚举之间的区别是什么

Java中这两个枚举之间的区别是什么,java,enums,Java,Enums,我有一个字符串对象:String theLanguage=“de” 我有两个枚举:- 枚举1: public enum Lang { French("fr"), German("de"), English("en"), Italian("it"), Spanish("sp"); private String lang; Lang(String lang) { this.lang = lang; } public Strin

我有一个字符串对象:
String theLanguage=“de”

我有两个枚举:-

枚举1:

public enum Lang
{
   French("fr"),
   German("de"),
   English("en"), 
   Italian("it"),
   Spanish("sp");

   private String lang;

   Lang(String lang) {
      this.lang = lang;
   }

   public String lang() {
      return lang;
   }
}
枚举2:

public enum Lang
{
   French(1, "fr"),
   German(2, "de"),
   English(3, "en"), 
   Italian(4, "it"),
   Spanish(5, "sp");


   final int languageID;

   private final String code;

   Lang( int languageID, String code)
   {
      this.languageID = languageID;
      this.code= code;
   }
}
---------------------------我的问题------------------

Q 1-这两个枚举之间的差异是什么(基本上在第二个枚举中,为什么有int值)


Q 2-我需要做什么或添加第二个枚举,以便搜索/匹配
语言
对象与枚举2

第二个只是有一个额外的参数,languageID

将此代码添加到第二个枚举中,以便按代码进行搜索(例如“de”)

private static Map reverseLookup=Arrays.stream(values())
.collect(Collectors.toMap(Lang::getCode,Function.identity());
公共字符串getCode(){
返回码;
}
公共静态Lang fromCode(最终字符串代码){
返回reverseLookup.get(代码);
}

第二个参数只是有一个额外的参数,languageID

将此代码添加到第二个枚举中,以便按代码进行搜索(例如“de”)

private static Map reverseLookup=Arrays.stream(values())
.collect(Collectors.toMap(Lang::getCode,Function.identity());
公共字符串getCode(){
返回码;
}
公共静态Lang fromCode(最终字符串代码){
返回reverseLookup.get(代码);
}

1-可以通过字符串和int值搜索第二个(例如,如果您知道语言的id,但不知道其代码)。Idk“WhoisRIR”在构造器应该在的地方做什么


2-您需要为代码字符串添加一个getter,然后对枚举进行foreach,直到找到一个代码与语言相同的元素(例如,如果您知道该语言的id,但不知道其代码),第二个元素可以通过字符串和int值进行搜索。Idk“WhoisRIR”在构造器应该在的地方做什么


2-您需要为代码字符串添加一个getter,然后对枚举进行foreach,直到您找到一个代码与
语言

1)相同的元素。区别在于,编写#2的人认为每个值都需要一个整数标识符。就这样。2) 您可以使用
Lang.valueOf(theLanguage)
@Melvin,谢谢,但这不是一个评估问题,这类问题是在一次编程面试中提出的,这就是我提出的原因。1)区别在于,编写#2的人认为每个值都需要一个整数标识符。就这样。2) 您可以使用
Lang.valueOf(theLanguage)
@Melvin,谢谢,但这不是一个评估问题,这类问题是在编程面试中提出的,这就是我提出的原因。
private static Map<String, Lang> reverseLookup = Arrays.stream(values())
             .collect(Collectors.toMap(Lang::getCode, Function.identity()));

public String getCode() {
    return code;
}

public static Lang fromCode(final String code) {
    return reverseLookup.get(code);
}