2012-03-26 47 views
0

我在数据库中记录了排序顺序号。现在我想用UP和DOWN按钮创建一个UI来对它们进行重新排序。什么是最好的算法,使两个functionUp(记录)functionDown(记录)为了重新排列他们通过改变orderNum和他们坚持这个数字到数据库。交换/重新排序记录

这里是我想要达到(前富= 24,后富= 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 

回答

1

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

0

假设他不想再次向数据库请求数据,只是为了排序数据他se为什么不快速排序算法?

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

+0

我需要将该记录保存到数据库(保存在orderNum字段中) – Maksim 2012-03-26 15:57:33

0

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

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