java - 按字段对一组元素进行排序

标签 java enums comparable

我有一个集合 A 的同一类的对象,并且每个对象都有一个Enum 字段,这是可比较的。 我如何按该字段对集合进行排序? 我想到了类似的事情:

Collections.sort(A, enumField)

但是当然 enumField 不是要通过...进行比较的对象

最佳答案

Collections.sort 不接受 Set。它只接受 List,因此首先您应该将您的集合转换为列表:

ArrayList<YourObject> list = new ArrayList<>(yourSet);

然后您可以使用自定义比较器调用 Collections.sort:

Collections.sort(list, Comparator.comparing(x -> x.enumField));
// now "list" contains the sorted elements.

关于java - 按字段对一组元素进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50656313/

相关文章:

java - 如何根据构造函数值获取枚举实例并进行一般转换?

java - 可比较内部的参数 (Java)

java - 在 tomcat 中屏蔽 WAR 文件和端口

Java String[] args 缺少字符

java - java中如何临时标记对象

android - 属性集,通过名称获取枚举

java - Android Studio : Start and Stop audio using mediaPlayer

Typescript - 从枚举中访问值

尽管实现了 Comparable 接口(interface),但 Java ClassCastException 错误

使用许多属性进行 Java 对象比较