java - 如何在 Java 中根据 2 个对象属性对唯一列表进行排序

标签 java sorting collections unique

我有一个我称为工件的对象列表。我需要按“名称”属性的字母顺序排序,并按 Artifact 称为“级别”的属性按数字顺序排序。

级别并不总是在 Artifact 中设置,在这种情况下,整个集合应该按字母顺序排列。如果工件具有级别,则该级别优先,并且应按级别顺序排序。

根据名称属性,工件必须是唯一的。我可以使用 Set 集合并重写 Artifact 的 equals 方法来按字母顺序排序。但是,当我想按 Level 排序时,与 Name 相关的 equals 方法会丢弃这种排序的结果。

我应该使用什么集合和对象结构来保持名称的唯一性,同时也能够按级别排序?

最佳答案

您需要查看 comparable interfacecomparator interface 。如果这是比较对象的唯一方式,则实现 Comparable,否则使用比较器。

关于java - 如何在 Java 中根据 2 个对象属性对唯一列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10644653/

相关文章:

java - 分辨率和纵横比

java - Spring Restfull Jax-RS 注释支持

java - Spring Tool Suite 未完成源代码和 javadoc 下载

java - 禁用 Glassfish 4.1 连接保持 Activity

c# - 如何按行对二维数组进行排序?

python - SORT Tracker - 参数设置

javascript - 如何将 RESTful API 映射到 BackboneJS 模型和集合中的 URL?

python - 如何在Python中实现快速排序

java 排序中的可比接口(interface)

c++ - 可用于存储和管理整数集合的最佳 C++ 数据结构是什么?