【发布时间】:2011-03-07 09:19:20
【问题描述】:
我想创建一个有序集或列表,并将枚举添加到集合中,以便它们按枚举顺序插入。
我可以在不创建显式比较器的情况下执行此操作吗?有没有一个集合会使用枚举的固有顺序来维护集合中的顺序?
Groovy 中我想要做的示例(我希望它与使用 for 循环而不是闭包的 Java 类似):
TreeSet<TransactionElement> elements = new TreeSet<TransactionElement>()
elementList.each{ element -> elements.add(element)}
TransactionElement 是一个枚举,元素应该按照它们在枚举中列出的顺序添加到 TreeSet
更新: 我选择的解决方案:
EnumSet<TransactionElement> elements = EnumSet.noneOf(TransactionElement.class);
elementList.each{ element -> elements.add(element)}
关于如何使用 EnumSet 和 EnumMap here 的一些很好的例子
【问题讨论】: