如何在Java中按字母顺序对枚举成员进行排序?
我有一个如下的枚举类:
public enum Letter { OMEGA_LETTER("Omega"),
GAMMA_LETTER("Gamma"),
BETA_LETTER("Beta"),
ALPHA_LETTER("Alpha"),
private final String description;
Letter() {
description = toString();
}
Letter(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
}
在我的代码后面,我基本上遍历了Letter枚举,并将其成员打印到控制台:
for (Letter letter : Letter.values()) {System.out.println(letter.getDescription());
}
我认为值()方法会给我的枚举的有序视图(如提到这里),但这里不是这种情况。我只是按照在Letter枚举类中创建它们的顺序来获得枚举成员。有没有一种方法可以按字母顺序输出枚举的值?我需要一个单独的比较器对象,还是有内置的方法来执行此操作?基本上,我希望根据getDescription()文本按字母顺序对值进行排序:
AlphaBeta
Gamma
Omega
回答:
SortedMap<String, Letter> map = new TreeMap<String, Letter>();for (Letter l : Letter.values()) {
map.put(l.getDescription, l);
}
return map.values();
或者只是重新排列声明:-)
编辑:正如KLE所指出的,这假定描述在枚举内是唯一的。
以上是 如何在Java中按字母顺序对枚举成员进行排序? 的全部内容, 来源链接: utcz.com/qa/424044.html