如何在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()文本按字母顺序对值进行排序:

Alpha

Beta

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

回到顶部