java 枚举 排序_基于枚举常量的Java排序

基于枚举常量的Java排序

我们有一个枚举

enum listE {

LE1,

LE4,

LE2,

LE3

}

此外,我们还有一个包含字符串["LE1", "LE4", "LE2", "LE3"]的列表。有没有一种方法可以根据枚举定义的顺序对列表进行排序(不是自然的String顺序)。

排序后的列表应为["LE1", "LE4", "LE2", "LE3"]。

Sukhhhh asked 2020-07-31T05:13:58Z

10个解决方案

74 votes

Comparable通过枚举的自然顺序(声明值的顺序)实现Comparable。 如果仅通过解析创建枚举值(而不是字符串)的列表,然后使用Collections.sort对该列表进行排序,则它应该以所需的方式进行排序。 如果您再次需要字符串列表,则可以通过在每个元素上调用name()进行转换。

Jon Skeet answered 2020-07-31T05:14:42Z

7 votes

values()方法按定义的顺序返回。

enum Test{

A,B,X,D

}

for(Test t: Test.values()){

System.out.println(t);

}

输出量

A

B

X

D

Jigar Joshi answered 2020-07-31T05:15:06Z

5 votes

你可能感兴趣的:(java,枚举,排序)