基于枚举常量的 Java 排序

2022-08-31 16:03:08

我们有一个枚举

enum listE {
    LE1,
    LE4,
    LE2,
    LE3
}

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

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


答案 1

Enum<E>通过枚举的自然顺序(声明值的顺序)实现。如果您只是通过解析创建枚举值列表(而不是字符串),则使用 对该列表进行排序,它应该按照您想要的方式进行排序。如果您再次需要字符串列表,只需通过调用每个元素即可转换回来。Comparable<E>Collections.sortname()


答案 2

我用以下方式按升序对我的排序,这对我来说很好。List<theEnum>

Collections.sort(toSortEnumList, new Comparator<theEnum>() {
                @Override
                public int compare(theEnum o1, theEnum o2) {
                    return o1.toString().compareTo(o2.toString());
                }
            });

推荐