2012-03-26 15 views
0

ソート順番号のデータベースにレコードがあります。今、私はそれらを並べ替えるためにボタンUPとDOWNを持つUIを作成したいと思います。 orderNumを変更してそれらを再配置するために2つのfunctionsUp(レコード)functionDown(レコード)を作るための最良のアルゴリズムは何ですか?ここでレコードの交換/並べ替え

は私が(FOO = 25後、FOO = 24前)を達成しようとしているものの例である:

バー

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

データベースのデータをもう一度尋ねたくないと仮定すると、データを並べ替えるだけですなぜ、クイックソートアルゴリズムではない?

もちろん、私が正しいとすれば。そうでない場合は、@ grigeryソリューションに従います。

+0

私はそのレコードをデータベースに保存する必要があります(orderNumフィールドに保存) – Maksim

0

UIでソートする場合は、ResultSetの各レコードをBeanにマップする必要があります。次に、BeanにComparableインターフェースを実装させ、それを使ってコレクションをソートすることができます。

異なるフィールドでソートする場合は、選択したフィールドに応じてコンパイラを書き込んで、選択したカラムのコンパレータを実行時に注入することもできます。