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);
}