- PR -

データのソート方法を教えてください。

1
投稿者投稿内容
さるば
会議室デビュー日: 2005/02/03
投稿数: 16
投稿日時: 2005-02-03 14:12
Class Data{
  int  intKey
  int  intValue
   String  str
}

上記のようなデータをもつクラスの配列 datas[]があるとします。
intKeyの値はdatas[]の中で重複していません。
datas[]の要素たちを、intKeyの値をキーとして昇順でソートさせたいのですが、
Javaのどのクラスを利用するのが適当でしょうか?
(Arraysクラスあたりで出来そうな気もするのですが・・・)

ちなみに、使用しているJavaのバージョンは1.4.2._03です。

K
大ベテラン
会議室デビュー日: 2004/04/07
投稿数: 174
投稿日時: 2005-02-03 14:18
Dataクラスに手を加えることが出来るのならば、下記のスレッドの方法が一番早いと思います。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=12&topic=17255
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2005-02-03 14:20
Data クラスに Coparable インターフェイスを実装して、Arrays#sort(Object[] a) を使う。もし Data クラスに手を加えられない場合は、別途 Comparator を作成して、Arrays#sort(Object[] a, Comparator c) を使う。

いや、それよりも私が言いたいのは、data に s を付けて datas なんて書くのは恥ずかしいぞってことだ。
さるば
会議室デビュー日: 2005/02/03
投稿数: 16
投稿日時: 2005-02-03 15:12
Coparable インターフェイスを実装したクラスを別に用意し、
java.Util.Arrays sort(Object[] a, Comparator c) メゾッドを実行することで
思い描いていたようにソートが出来ました!

どうもありがとうございます。
助かりました〜。

おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2005-02-03 21:49
引用:

いや、それよりも私が言いたいのは、data に s を付けて datas なんて
書くのは恥ずかしいぞってことだ。


ですなあ。。。

> さるばさん
dataはdatumの複数形ですよ
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2005-02-03 22:19
ちなみに、どうしても複数を表したいのであれば data set(s) と呼べます 
1

スキルアップ/キャリアアップ(JOB@IT)