
Javaのソートに関する質問です。
Javaのソートに関する質問です。
CSVから取得したデータの一つをキーとして降順にソートしたいのでしょうが、どのような方法が効果的でしょうか?関数が利用できるのであれば関数を使用したいのですが。。。
データの詳細を以下に記載します。
環境
JavaSE5.0
CSVデータ
※ソート条件
・キー内容は「wwwwwwww-xxxxxxxx-yyyyyyyy-zzzzzzzz」という形式で、
「wwwwwwww」が1番、「xxxxxxxx」が2番、というように、左側の数値が優先されます。
(ソート前)キー内容 タイトル
11111111-22222222-33333333-4444444 テスト1
22222222-33333333-44444444-5555555 テスト2
11111111-00000000-22222222-3333333 テスト3
22222222-44444444-55555555-6666666 テスト4
(ソート後)キー内容 タイトル
11111111-00000000-22222222-3333333 テスト3
11111111-22222222-33333333-4444444 テスト1
22222222-33333333-44444444-5555555 テスト2
22222222-44444444-55555555-6666666 テスト4
投稿日時 - 2010-09-11 13:20:56
このQ&Aは役に立ちましたか?
1人が「このQ&Aが役に立った」と投票しています
回答(2)
かっこよく実装するなら
class CSV {
List<Recode> recodes;
}
class Recode implements Comparable{
String key;
String value;
public int compareTo(Object o) {
if (!o instanceof Recode) {
// 例外処理
}
return key.compareTo( ((Recode)o).key);
}
}
をという具合に、CSVの1レコードにComparableを定義して
Collections.sort(recodes);
って具合かしら。
List<Recode>の代わりにSortedSetを使ったりすると
勝手にソートされたりするわよ。
ちなみにRecodeクラスにComparableを実装せず
Collections.sort(recodes, new Comparator(){~});
でソート条件を直接指定するのもありね。
投稿日時 - 2010-09-13 14:21:51