基于枚举常量的 Java 排序
我们有一个枚举
enum listE {
LE1,
LE4,
LE2,
LE3
}
此外,我们有一个包含字符串的列表 。有没有办法根据枚举定义的顺序(而不是自然顺序)对列表进行排序。["LE1","LE2","LE3","LE4"]
String
排序列表应为 。["LE1", "LE4", "LE2", "LE3"]
我们有一个枚举
enum listE {
LE1,
LE4,
LE2,
LE3
}
此外,我们有一个包含字符串的列表 。有没有办法根据枚举定义的顺序(而不是自然顺序)对列表进行排序。["LE1","LE2","LE3","LE4"]
String
排序列表应为 。["LE1", "LE4", "LE2", "LE3"]
Enum<E>
通过枚举的自然顺序(声明值的顺序)实现。如果您只是通过解析创建枚举值列表(而不是字符串),则使用 对该列表进行排序,它应该按照您想要的方式进行排序。如果您再次需要字符串列表,只需通过调用每个元素即可转换回来。Comparable<E>
Collections.sort
name()
我用以下方式按升序对我的排序,这对我来说很好。List<theEnum>
Collections.sort(toSortEnumList, new Comparator<theEnum>() {
@Override
public int compare(theEnum o1, theEnum o2) {
return o1.toString().compareTo(o2.toString());
}
});