田舎システムエンジニアの日常

アクセスカウンタ

zoom RSS Javaで自作クラス(データクラス)をソートする

<<   作成日時 : 2007/10/11 10:00   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 2 / トラックバック 1 / コメント 0

Javaで自作クラス(データクラス)をソートする

前回は配列をソートする際の処理方法について書いたが、
今回は自作クラス(データクラス)のソート処理方法について調べてみた。





■自作クラス(データクラス)を作成

ソート処理する場合にいくつか考えられるが、
今回は以下のようなデータクラスを作成し、
いずれかの項目をソートする場合について書きます。

/** テストデータクラス **/
public class testDat {

 private String UserId=""; //ユーザID
 private String UserName=""; //ユーザ名

 public testDat(String ui,String un) {
UserId=ui;
UserName=un;
 }

 public String getUserId() {
return UserId;
 }

 public String getUserName() {
return UserName;
 }

 public void setUserId(String string) {
UserId = string;
 }

 public void setUserName(String string) {
UserName = string;
 }

}

このテストデータクラスがArrayListなどのList配列へ何件か追加されており、
ユーザ名でソートしたいときには、以下のように行います。





■自作クラス(データクラス)の 昇順ソート

java.util.ArrayList sort_arr = new java.util.ArrayList();

sort_arr.add(new testDat("02", "テスト太郎2"));
sort_arr.add(new testDat("04", "テスト太郎4"));
sort_arr.add(new testDat("01", "テスト太郎1"));

// ソート用条件
java.util.Comparator sort_asc = new java.util.Comparator() {
 // ユーザ名でソート
 public int compare(Object obj0, Object obj1) {
  String UserName0 = ((testDat) obj0).getUserName();
  String UserName1 = ((testDat) obj1).getUserName();
  return UserName0.compareTo(UserName1);
 }
};

// ArrayListから配列へセット
Object[] oarr = sort_arr.toArray();

// 配列をソート
java.util.Arrays.sort(oarr, sort_asc);

// ソート結果確認
for (int i = 0; i < oarr.length; i++){
 testDat td = (testDat)oarr[i];
 System.out.println(td.getUserName());
}

この結果、以下のように昇順にソートされます。

テスト太郎1
テスト太郎2
テスト太郎4

※降順ソートの場合は、以下のソート条件へ変更します。



 public int compare(Object obj0, Object obj1) {
  String UserName0 = ((testDat) obj0).getUserName();
  String UserName1 = ((testDat) obj1).getUserName();
  return UserName1.compareTo(UserName0);
 }





やさしいJava 第3版 (やさしいシリーズ)
やさしいJava 第3版 (やさしいシリーズ)

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 2
なるほど(納得、参考になった、ヘー)
面白い

トラックバック(1件)

タイトル (本文) ブログ名/日時
レイバン メガネ
Javaで自作クラス(データクラス)をソートする 田舎システムエンジニアの日常/ウェブリブログ ...続きを見る
レイバン メガネ
2013/07/06 03:05

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Javaで自作クラス(データクラス)をソートする 田舎システムエンジニアの日常/BIGLOBEウェブリブログ
文字サイズ:       閉じる