枚举:
public enum ComponentType {
INSTRUCTION, ACTION, SERVICE, DOMAIN, INTEGRATION, OTHER, CONTEXT;
}
A 类:
public class A
{
String name;
ComponentType c;
public A(String name, ComponentType c)
{
this.name = name;
this.c = c;
}
}
代码:
List<A> l = new ArrayList<A>();
l.add(new A("ZY", ACTION));
l.add(new A("ZY0", INSTRUCTION));
l.add(new A("ZY1", DOMAIN));
l.add(new A("ZY2", SERVICE));
l.add(new A("ZY3", INSTRUCTION));
l.add(new A("ZY4", ACTION));
如何根据枚举顺序对列表进行排序?
最佳答案
您应该简单地委托(delegate)给已经提供的枚举 compareTo
方法并反射(reflect)声明顺序(基于 ordinal
值):
Collections.sort(list, (a1, a2) -> a1.getType().compareTo(a2.getType()));
或者,如果您认为组件类型为您的元素提供“自然顺序”,您可以让 A 类本身实现 Comparable
并委托(delegate) compareTo
ComponentType
方法。
关于java - 如何按枚举的顺序对 List<Enum, Collection> 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13449333/