Java:对元素进行排序

标签 java sorting

我知道我们通常使用 java.util.Arrays.sort(Object[], Comparator) 。 JavaDoc 说它是修改后的合并排序。

但是我需要一个排序算法来将每个对象与每个对象进行比较。我将有很多元素,其中的顺序并不重要。但有些元素确实需要位于特定的其他元素之后(不一定是连续的)。我认为(但不知道)合并排序还不够......

或许,我想要实现的根本不叫排序

我是否需要自己实现这样一个系统,或者是否有相关的东西?

<小时/>

示例:

Obj1, Obj2, Obj3, Obj4

以下几对的顺序并不重要(这意味着我的比较器应该返回 0):

Obj1, Obj2 (*)
Obj1, Obj3
Obj2, Obj3
Obj2, Obj4 (*)
Obj3, Obj4

但是! Obj4 后面确实有必要 Obj1

由于有两对 (*),这在数学上意味着 Obj1 == Obj4。

使用归并排序可以吗?

谢谢

最佳答案

如果您知道理想的排序,一种选择是添加一些可排序的值,例如表示数据之间关系的整数。例如,如果项目 A 必须位于项目 B 之前,则确保其排序值小于项目 B 的值。然后,您可以提供一个仅查看排序值的自定义比较器,并且您可以使用标准排序算法。

关于Java:对元素进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6653053/

相关文章:

python - 对排序算法效率的困惑

java - MjpegView 与其他 XML 布局

java - 应用程序在 sleep 后崩溃

java - Spring Boot Hibernate CRUD REST API 404错误

php - Orderby 自定义产品查询,如 Woocommerce 后端产品列表

mongodb - 通过具有不同值的相同键对MongoDB集合进行排序

ruby-on-rails - 排序多态关联的最佳方法

java - 更改maven eclipse项目中的java SDK版本

Java Swing : NullPointerException in own created resizable GUI

C - 对文本文件中的单词列表进行排序