尝试从枚举 class 创建字符串的 ArrayList
Trying to create an ArrayList of Strings from an enum class
我已经能够从枚举 class 的值中成功加载我的 ArrayList。我对使用枚举不是很熟悉,我想知道是否有一种方法可以在不为每个枚举键入 add 的情况下处理这个问题,正如我所展示的那样。
public enum PartsOfSpeech {
Adjective("Placeholder [adjective] : To be updated..."),
Adverb("Placeholder [adverb] : To be updated..."),
Conjunction("Placeholder [conjection] : To be updated..."),
Interjection("Placeholder [interjection] : To be updated..."),
Noun("Placeholder [noun] : To be updated..."),
Preposition("Placeholder [preposition] : To be updated..."),
Pronoun("Placeholder [pronoun] : To be updated..."),
Verb("Placeholder [verb] : To be updated...");
private String speechValue;
private PartsOfSpeech(String speechValue) {
this.speechValue= speechValue;
}
public String getSpeechValue() {
return speechValue;
}
}
public class Dictionary {
public static void main(String args[]) {
System.out.println("! Loading data...");
Map<String, List<String>> dictionaryMap = new HashMap<String, List<String>>();
List<String> POSList = new ArrayList<>();
POSList.add(PartsOfSpeech.Adjective.getSpeechValue());
POSList.add(PartsOfSpeech.Adverb.getSpeechValue());
POSList.add(PartsOfSpeech.Conjunction.getSpeechValue());
POSList.add(PartsOfSpeech.Interjection.getSpeechValue());
POSList.add(PartsOfSpeech.Noun.getSpeechValue());
POSList.add(PartsOfSpeech.Preposition.getSpeechValue());
POSList.add(PartsOfSpeech.Pronoun.getSpeechValue());
POSList.add(PartsOfSpeech.Verb.getSpeechValue());
dictionaryMap.put("distinct",POSList);
values()
方法 return 枚举值数组。您可以迭代这些值,获取语音值,并将它们添加到列表中。
下面是如何使用 Stream API:
List<String> POSList = Arrays.stream(PartsOfSpeech.values())
.map(PartsOfSpeech::getSpeechValue)
.collect(Collectors.toList());
并且遵循 Java 命名约定,它应该是 posList
而不是 POSList
。
我已经能够从枚举 class 的值中成功加载我的 ArrayList。我对使用枚举不是很熟悉,我想知道是否有一种方法可以在不为每个枚举键入 add 的情况下处理这个问题,正如我所展示的那样。
public enum PartsOfSpeech {
Adjective("Placeholder [adjective] : To be updated..."),
Adverb("Placeholder [adverb] : To be updated..."),
Conjunction("Placeholder [conjection] : To be updated..."),
Interjection("Placeholder [interjection] : To be updated..."),
Noun("Placeholder [noun] : To be updated..."),
Preposition("Placeholder [preposition] : To be updated..."),
Pronoun("Placeholder [pronoun] : To be updated..."),
Verb("Placeholder [verb] : To be updated...");
private String speechValue;
private PartsOfSpeech(String speechValue) {
this.speechValue= speechValue;
}
public String getSpeechValue() {
return speechValue;
}
}
public class Dictionary {
public static void main(String args[]) {
System.out.println("! Loading data...");
Map<String, List<String>> dictionaryMap = new HashMap<String, List<String>>();
List<String> POSList = new ArrayList<>();
POSList.add(PartsOfSpeech.Adjective.getSpeechValue());
POSList.add(PartsOfSpeech.Adverb.getSpeechValue());
POSList.add(PartsOfSpeech.Conjunction.getSpeechValue());
POSList.add(PartsOfSpeech.Interjection.getSpeechValue());
POSList.add(PartsOfSpeech.Noun.getSpeechValue());
POSList.add(PartsOfSpeech.Preposition.getSpeechValue());
POSList.add(PartsOfSpeech.Pronoun.getSpeechValue());
POSList.add(PartsOfSpeech.Verb.getSpeechValue());
dictionaryMap.put("distinct",POSList);
values()
方法 return 枚举值数组。您可以迭代这些值,获取语音值,并将它们添加到列表中。
下面是如何使用 Stream API:
List<String> POSList = Arrays.stream(PartsOfSpeech.values())
.map(PartsOfSpeech::getSpeechValue)
.collect(Collectors.toList());
并且遵循 Java 命名约定,它应该是 posList
而不是 POSList
。