交换/重新排序记录

时间:2012-03-26 15:44:12

标签: java

我在数据库中记录了排序顺序号。现在我想创建一个带UP和DOWN按钮的UI来重新排序它们。制作两个 functionsUp(记录) functionDown(记录)的最佳算法是什么,以便通过更改orderNum重新排列它们,并将它们保存到数据库中。

这是我想要实现的目标的例子(在foo = 24之前,在foo = 25之后)

在按下

之前
id | name | orderNum
-------------------- 
1  | foo  | 24
2  | bar  | 25
3  | doe  | 26

id | name | orderNum
-------------------- 
1  | foo  | 25
2  | bar  | 24
3  | doe  | 26

3 个答案:

答案 0 :(得分:1)

假设您正在使用Java Collections,您可以编写一个实现Comparable的类并使用实用程序Collections.sort()。有关订购收集的更多信息here

答案 1 :(得分:0)

假设他不想再次从数据库再次请求数据,只是为了对他选择的数据进行排序,为什么不快速排序算法?

当然,如果我是对的。如果没有,请关注@ggrigery解决方案

答案 2 :(得分:0)

如果您想在UI上对它们进行排序,则应将ResultSet中的每条记录映射到bean。然后,您可以让您的bean实现Comparable接口,并使用它来对您的集合进行排序。

如果要对不同的字段进行排序,根据选择的字段,您还可以为每个字段编写比较器,并在运行时为选定的列注入比较器。