2012-03-26 83 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接口並使用它來對你的集合進行排序。

如果要對不同的字段進行排序,根據所選字段的不同,還可以爲每個字段編寫比較器,並在運行時爲選定列插入比較器。