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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值